springboot学习中问题
作者:互联网
在学习springboot 搭建项目时,出现Controller层注入service,注入失败的问题。查找了很久才找到原因
对于多模块项目,应该注意@ComponentScan,指定位置扫描。
@ComponentScan主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中。@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中
springboot的service注入也有多种形式,@Autowired 和@Resource
@Autowired:将自动在代码上下文中找到何其匹配的bean,并自动注入到相应的地方去。
@Resource:作用相当于Autowired
两者的区别:
1. @Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配
2.@Autowired默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false)。
@PostConstruct:是在类的构造函数之后执行,init()方法之前执行。当PostConstruct注解到方法上时,表示此方法是实例化该bean后才会马上执行此方法,之后才会去实例化其他Bean,并且一个Bean中的@PostConstruct注解方法可以是多个。
标签:问题,springboot,Autowired,PostConstruct,ComponentScan,学习,bean,注解 来源: https://www.cnblogs.com/BaymaxHH/p/16104663.html