好程序员Java学习路线分享春天创建Bean的3种方式,本文讲解了在春天应用中创建Bean的多种方式,包括自动创建,以及手动创建注入方式,实际开发中可以根据业务场景选择合适的方案。
方式1:
使用Spring XML方式配置,该方式用于在纯弹簧应用中,适用于简单的小应用,当应用变得复杂,将会导致XML配置文件膨胀,不利于对象管理。
& lt; Bean id=皒xxx”类=皒xxx.xxxx”/祝辞
方式2:
使用@ component, @ service, @Controler, @注解
这几个注解都是同样的功能,被注解的类将会被春容器创建单例对象。
@ component:侧重于通用的Bean类
@ service:标识该类用于业务逻辑
@Controler:标识该类为Spring MVC的控制器类
@:标识该类是一个实体类,只有属性和Setter, Getter 1
3
@ component
公开课用户{
}
当用于弹簧引导应用时,被注解的类必须在启动类的根路径或者子路径下,否则不会生效。
如果不在,可以使用@ComponentScan标注扫描的路径。
Spring XML也有相关的标签& lt; component-scan/祝辞1
3
4 5 6
@ComponentScan (value=https://www.yisu.com/zixun/{“com.microblog.blog”、“com.microblog.common”})
公共类MicroblogBlogApplication {
公共静态孔隙主要(String参数[]){
SpringApplication.run (MicroblogBlogApplication.class, args);}
}
方式3:
使用@ Bean注解,这种方式用在春天引导应用中。
@ configuration标识这是一个弹簧引导配置类,其将会扫描该类中是否存@ Bean注在解的方法,比如如下代码,将会创建用户对象并放入容器中。
@ConditionalOnBean用于判断存在某个Bean时才会创建用户Bean。
这里创建的Bean名称默认为方法的名称用户。也可以@ Bean (“xxxx”)定义。
3
4 5
6 7 8
@ configuration
公共类UserConfiguration {
@ Bean
@ConditionalOnBean (Location.class)
公共用户用户(){
返回新用户();}
}
弹簧引导还为我们提供了更多类似的注解。
也和方式2一样,也会存在扫描路径的问题,除了以上的解决方式,还有使用弹簧引导起动器的解决方式
在资源下创建如下文件.META-INF/spring.factories。
弹簧引导在启动的时候将会扫描该文件,从何获取到配置类UserConfiguration。
spring.factories。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.log.config。UserConfiguration
如果不成功,请引入该依赖1
3
4 5
& lt; dependency>
& lt; groupId> org.springframework.boot
& lt; artifactId> spring-boot-configuration-processor
& lt; optional> true
& lt;/dependency>
这个方式也是创建SpringBoot-starter的方式。