【JavaWeb】Spring无法@Autowired注入
2017-11-29 20:25
417 查看
在用Spring依赖注入时发现@Autowired无法注入,代码如下:
类MyBean1:
运行报错:
bean1并为注入进来
原因:因为用的是普通Java程序,类的初始化顺序为先静变量,然后静态方法,然后非静态变量,然后非静态方法。
因为是先初始化的静态bean1,此时并未加载Beans.xml配置文件,所以无法扫描到包下的@Component组件注解,也就没有注册bean给spring,所以无法依赖注入。
改为在web项目中即可,因为web项目在初始化加载的时候首先加载配置文件这样bean就可以正常注入了。
@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就可以正常注入了。
相关文章推荐
- spring boot 中@Autowired注解无法自动注入的错误
- JAVA学习(七)__Spring的@Autowired注入规则
- 解决Springboot @Autowired 无法注入问题
- JAVA温习:Spring的注解注入及区别 @Resource @Autowired
- Spring使用Quartz定时调度Job无法Autowired注入Service的解决方案
- java反射遇上spring注入@Autowired
- Java Spring 多线程 @Autowired和@Resource注入问题
- Spring使用Quartz定时调度Job无法Autowired注入Service的解决方案
- (问题解决)Spring @Async无法注入Controller java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(
- JAVA学习(七)__Spring的@Autowired注入规则
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- spring 中@Autowired注入失败问题
- CXF WebService+Spring 无法注入问题解决方法
- Rhythmk 一步一步学 JAVA (14) Spring-3 @Autowired,@Qualifier @Required @Resource @Component,@Service,@Controller,@Repository @PostConstruct,@PreDestroy
- Spring的@Autowired注入规则
- spring注入之使用标签 @Autowired @Qualifier
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别
- java开源框架集成常见错误之spring2.5中没有org.springframework.web.struts.DelegatingActionProxy ,使得Action不能注入到spring中
- 关于Struts在Spring中使用autowired 自动注入的问题
- Spring @Resource、@Autowired、@Qualifier的注解注入及区别