springboot注册自定义bean+属性注入

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注入属性完成,撒花~

你可能感兴趣的:(java,springboot)