精华内容
下载资源
问答
  • 主要介绍了@Autowired注入为null问题原因分析吗,小编觉得挺不错的,对日后比较有帮助,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 在SpringMVC框架中,我们经常要使用@Autowired注解注入Service或者Mapper接口,我们也知道,在controller层中注入service接口,在service层中注入其它的service接口或者mapper接口都是可以的,但是如果我们要在我们...

    在SpringMVC框架中,我们经常要使用@Autowired注解注入Service或者Mapper接口,我们也知道,在controller层中注入service接口,在service层中注入其它的service接口或者mapper接口都是可以的,但是如果我们要在我们自己封装的Utils工具类中或者非controller普通类中使用@Autowired注解注入Service或者Mapper接口,直接注入是不可能的,因为Utils使用了静态的方法,我们是无法直接使用非静态接口的,当我们遇到这样的问题,我们就要想办法解决了。
    @Autowired注解的方法:

    @Component
    public class TestUtils {
        @Autowired
        private ItemService itemService;
     
        @Autowired
        private ItemMapper itemMapper;
     
        public static TestUtils testUtils;
     
        @PostConstruct
        public void init() {
            testUtils = this;
        }
    }

    //utils工具类中使用service和mapper接口的方法例子,用'testUtils.xxx.方法' 就可以了

    public static void test(Item record){
        testUtils.itemMapper.insert(record);
        testUtils.itemService.queryAll();
    }

    我们在init方法中使用以下注解就可以了,时间上这个init()的方法是可以自己随便定义的,注意:inti()方法里面不用写任何东西,跟我这样的就绝对ok了,不用看网上其他人瞎掰!
    来源:http://www.tpyyes.com/a/javaweb/2016/1124/30.html
    如果以上不能解决,只能直接用 dao层:
    ApplicationContext context = new ClassPathXmlApplicationContext('classpath:spring/applicationContext-*.xml');
    FcglEsHouseMapper sfMapper = context.getBean(FcglEsHouseMapper.class);

    然后直接调mybatis接口,不推荐此种,违背springmvc

    非原创,资料来源http://blog.sina.cn/dpool/blog/s/blog_142a81ff10102x2g1.html

    展开全文
  • @Component public class CrmSupCommon { @Autowired private CrmSupMapper crmSupMapper; public static CrmSupCommon crmSupCommon; @PostConstruct public void init() { crmSupCo...
    @Component
    public class CrmSupCommon {
        @Autowired
        private CrmSupMapper crmSupMapper;
        public static CrmSupCommon crmSupCommon;
    
        @PostConstruct
        public void init() {
            crmSupCommon = this;
            crmSupCommon.crmSupMapper = this.crmSupMapper;
        }
    
        public static CrmSupCommon getInstance(){
            if(crmSupCommon == null){
                return  new CrmSupCommon();
            }
            return crmSupCommon;
        }
    
      
    }

     

    展开全文
  • 在SpringMVC框架中,我们经常要使用@Autowired注解注入Service或者Mapper接口,我们也知道,在controller层中注入service接口,在service层中注入其它的service接口或者mapper接口都是可以的,但是如果我们要在我们...

    在SpringMVC框架中,我们经常要使用@Autowired注解注入Service或者Mapper接口,我们也知道,在controller层中注入service接口,在service层中注入其它的service接口或者mapper接口都是可以的,但是如果我们要在我们自己封装的Utils工具类中或者非controller普通类中使用@Autowired注解注入Service或者Mapper接口,直接注入是不可能的,因为Utils使用了静态的方法,我们是无法直接使用非静态接口的,当我们遇到这样的问题,我们就要想办法解决了。
    @Autowired注解的方法:

    @Component
    public class TestUtils {
        @Autowired
        private ItemService itemService;
    
        @Autowired
        private ItemMapper itemMapper;
    
        public static TestUtils testUtils;
    
        @PostConstruct
        public void init() {
            testUtils = this;
        }
    }
    

    //utils工具类中使用service和mapper接口的方法例子,用’testUtils.xxx.方法’ 就可以了

    public static void test(Item record){
        testUtils.itemMapper.insert(record);
        testUtils.itemService.queryAll();
    }
    

    我们在init方法中使用以下注解就可以了,时间上这个init()的方法是可以自己随便定义的,注意:inti()方法里面不用写任何东西,跟我这样的就绝对ok了,不用看网上其他人瞎掰!
    来源:http://www.tpyyes.com/a/javaweb/2016/1124/30.html
    如果以上不能解决,只能直接用 dao层:

    ApplicationContext context = new ClassPathXmlApplicationContext('classpath:spring/applicationContext-*.xml');
    FcglEsHouseMapper sfMapper = context.getBean(FcglEsHouseMapper.class);
    

    然后直接调mybatis接口,不推荐此种,违背springmvc

    非原创,资料来源http://blog.sina.cn/dpool/blog/s/blog_142a81ff10102x2g1.html

    展开全文
  • 解决问题 @SpringBootTest public class MailTest { @Autowired JavaMailSenderImpl mailSender; @Test public void contextLoads() { //一个简单的邮件 SimpleMailMessage message = new SimpleMailMessage(); ...
    先说答案:在类上加上@RunWith(SpringRunner.class) !!!

    可能会对大家有用,不过要看个人具体情况

    我是在test类中使用出现的问题
    之前学习邮件的时候遇到这个问题没解决,后来学习redis又遇到了并解决
    import org.junit.Test;
    ...
    
    @RunWith(SpringRunner.class) // 加入这一行!!解决问题
    
    @SpringBootTest
    public class MailTest {
        @Autowired
        JavaMailSenderImpl mailSender;
    
        @Test
        public void contextLoads() {
            //一个简单的邮件
            SimpleMailMessage message = new SimpleMailMessage();
            message.setSubject("标题");
            message.setText("内容");
    
            message.setTo("xxx@qq.com");
            message.setFrom("xxx@qq.com");
            mailSender.send(message);
        }
    
      
    }
    
    
    
    至于原理,先挖个坑,过一段时间看源码的时候填坑!
    展开全文
  • 使用的时候,发现这个service为null,将MaintBusiness加上注解@Component交给Spring管理,仍不能解决问题。 追随代码,发现调用的时候是classforName的newInstance实例化的MaintBusiness,和new的差不多。 问题很...
  • 今天遇到的问题是Spring中使用Autowire的注解注入service,启动过程中debug可以看到proxy对象,但是实际运行中会报NullPointerException。 暴力解决的办法是直接从context里获取bean,不够优雅。目前正在研究Spring...
  • 参考:Springboot @Component下@Autowired注入为null【转】 1.private static 当前component 2.PostConstruct实例化 3.调用 例: @Component public class GrayScaleSubscribeListener extends ...
  • private MyUtil myUtil 通过调试发现myUtil的值为null,找到原因是因为在调用工具类时new了一个工具类,将myUtil重新初始化清空,导致myUtil的值为null,为了避免这种情况发生,可以不在工具类中进行调用MyUtil,先...
  • 今天在测试一个写完的的工具类时,发现工具类里面使用@Autowired注解自动注入的一个jpa数据库接口怎么测试都是null。 在网上也找了很多博客看了,好像也没找到说在点子上的,究其原因在于@Autowired注解。 想在注入...
  • @Component //申明为spring组件 public class FileHandleUtils{ @Autowired private FileServerManager fileServerManager; // 静态初使化当前类 public static FileHandleUtils fileHandleUtils; //注解@...
  • 在dubbo springmvc 中使用shiro时@AutoWired注入为null,百度好多办法都未解决,最后是这样解决的,可参考: 解决方式: 之前项目的提供者配置文件是这样的 <!--开启dubbo注解--> <dubbo:...
  • 标签: springmvc 非controller类 autowired注解 service注入为null 静态类 ...但是使用@Autowired注解注入Service,会报null异常;所以自己总结下写下来作为学习笔记吧,下面说下具体实现步骤: 1、在配置文件(spr...
  • 自定义类使用@Autowired注解注入问题

    千次阅读 2020-03-11 16:33:10
    问题:一般情况下自定义类使用@Autowired注解自动注入时 需要在类上加@RestController或@Service之类的注解,如果只是自定义类使用@Autowired时 会创建对象为null 例如: public class HttpConnectManager { @...
  • @Autowired @transient var streamingContext: StreamingContext = _ def fieldTop20(task: Task) = { val ssc = streamingContext val topicsSet = task.getTopic.split(",").toSet val kafkaParams...
  • @Autowired自动注入为null的原因

    千次阅读 2020-11-10 15:58:32
    原因:因为Filter和Listener加载顺序优先于spring容器初始化实例,所以使用@Autowired肯定为null了 3.没加@Service注解等 ,自己检查即可 4.你写的@Service、@Componet、@Configuration、@Repository等
  • spring boot @Autowired 自动注入为null问题解决 1.今天在
  • 记录一个@Autowired的case ...@Autowired注入的spring容器内的对象,静态成员是类的属性,而非对象的属性,类的装载是在程序初始化的时候,此时spring容器可能都没有初始化,何况依赖其注入。此时.
  • 关于@Component注解下的@Autowired注解下的类注入为null的解决方案 今天在测试一个写完的的工具类时,发现工具类里面使用@Autowired注解自动注入的一个jpa数据库接口怎么测试都是null。 后来到网上找了好多帖子,终于...
  • 使用@Autowired注入为null

    千次阅读 2021-01-14 00:02:24
    其实这是加载配置文件与初始化成员变量时机问题,实际上不管哪种情况下,在调用test()方法前都会创建一个对象,在对象创建前都会进行成员变量的初始化,注入过来了也会被初始化null给覆盖掉,所以造成了NPE问题 ...
  • @Autowired注入之后为null

    千次阅读 2019-09-11 15:54:09
    因此在工具类中的方法就不能使用静态的了,并且使用了@Autowired注解注入dao层,但是打断点的时候发现注入的dao层对象是null 经过下述步骤来寻找问题: 1.判断dao层是否加了注解或者继承JPA的一些接口 2.启动类...
  • @Autowired注入为null情况一(使用过滤器)原因解决情况二(没有添加注解)原因解决情况三(没有被扫描到)原因解决情况四(手动new)原因解决 情况一(使用过滤器) 原因 因为过滤器加载优于spring容器初始化,从而导致...
  • @Autowired private PositionService service; //静态初始化当前类 private static TimeServerHandler timeServerHandler; public void setPositionService(PositionService positionService) { this....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,017
精华内容 18,406
关键字:

@autowired注解注入为null