zoukankan      html  css  js  c++  java
  • 【JavaWeb】Spring无法@Autowired注入

    在用Spring依赖注入时发现@Autowired无法注入,代码如下:

    @Autowired
        private static MyBean1 bean1 ; 
        public static void main(String[] args) {
            ApplicationContext ac = new ClassPathXmlApplicationContext("Beans.xml");
            bean1.method1();
        }

    类MyBean1:

    @Component
        public class MyBean1 {
            public void method1() {
                System.out.println("bean 1");
            }
    
        }

    运行报错:

         Exception in thread "main"
    
         java.lang.NullPointerExceptionat test2.Main.main(Main.java:12)

    bean1并为注入进来

    原因:因为用的是普通Java程序,类的初始化顺序为先静变量,然后静态方法,然后非静态变量,然后非静态方法。

    因为是先初始化的静态bean1,此时并未加载Beans.xml配置文件,所以无法扫描到包下的@Component组件注解,也就没有注册bean给spring,所以无法依赖注入。

    改为在web项目中即可,因为web项目在初始化加载的时候首先加载配置文件这样bean就可以正常注入了。

  • 相关阅读:
    terminal
    变量提升、函数提升
    ssh传输文件
    mocha测试框架
    npm-run 自动化
    webpack
    浅析babel
    构建工具gulp
    C++中TRACE宏及assert()函数的使用
    memcpy函数-C语言
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286756.html
Copyright © 2011-2022 走看看