springboot注入bean有两种方式:
1.使用@Component标签
该标签是注解在类上,例如:
@Component
public class CustomSimpleBean(){
private String property1;
public String getProperty1() {
return property1;
}
public void setProperty1(String property1) {
this.property1 = property1;
}
}
2.使用@Bean标签
该标签是注解在方法上,例如:
1)自定义一个类
public class CustomSimpleBean(){
private String property1;
public String getProperty1() {
return property1;
}
public void setProperty1(String property1) {
this.property1 = property1;
}
}
2)在Application启动类中注册bean(敲重点:这里只是以在启动类注册bean为例,不表示只能在这里注册bean)
@SpringBootApplication
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}
@Bean
public CustomSimpleMappingExceptionResolver registerBean(){
return new CustomSimpleMappingExceptionResolver();
}
}
以上是springboot注册bean的两种方式,接下来演示如何在注册bean的时候注入属性值。
1)在application.properties(或者其他自定义的配置文件)文件中定义property的name和value(name是自己定义的,只要不重复就行,为了避免重复我这里给name加了一个前缀wh)
wh.property1=value1
2)在class中注入属性值(这里使用@Component方式注册bean)
@Component
//属性值前缀 和application.properties文件中自定义的前缀相同
@ConfigurationProperties(prefix = "wh")
//指明属性定义所在的配置文件
@PropertySource(value = "classpath:application.properties")
public class CustomSimpleBean(){
//属性值的name一定要和application.properties中的相同
private String property1;
public String getProperty1() {
return property1;
}
public void setProperty1(String property1) {
this.property1 = property1;
}
}
至此,bean注入属性完成,撒花~