作者:不染心
时间:2022/7/20
package com.dyl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
/**
* @author dyl
* @description:
* @date 2022/6/7 0007 上午 9:57
*/
@Configuration // 标志为注解类
//@ConditionalOnWebApplication //是web类的时候加载
@EnableConfigurationProperties(HelloProperties.class) // 使得HelloProperties属性文件生效
public class AutoConfig {
// 导入属性文件
@Autowired
private HelloProperties helloProperties;
@Bean
public HelloService helloService() {
HelloService service = new HelloService();
service.setHelloProperties(helloProperties);
return service;
}
}
package com.dyl;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* @author dyl
* @description:
* @date 2022/6/7 0007 上午 9:56
*/
@ConfigurationProperties(prefix = "example.hello") // 绑定配置文件中所有以example.hello开头的配置
public class HelloProperties {
/**
* 前缀
*/
private String prefix;
/**
* 后缀
*/
private String suffix;
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public String getSuffix() {
return suffix;
}
public void setSuffix(String suffix) {
this.suffix = suffix;
}
}
package com.dyl;
/**
* @author dyl
* @description:
* @date 2022/6/7 0007 上午 9:56
*/
public class HelloService {
/**
* 生产HelloProperties的getSet方法,使得配置类可以得到它
*/
HelloProperties helloProperties;
public HelloProperties getHelloProperties() {
return helloProperties;
}
public void setHelloProperties(HelloProperties helloProperties) {
this.helloProperties = helloProperties;
}
public String sayHello(String name) {
// 返回打招呼信息,招呼信息是可配置的
return helloProperties.getPrefix() + "-" + name + "-" + helloProperties.getSuffix();
}
}
spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.dyl.AutoConfig
<dependency>
<groupId>org.examplegroupId>
<artifactId>starter-serviceartifactId>
<version>1.0-SNAPSHOTversion>
dependency>
application.properties
example.hello.prefix = "EXAMPLE"
example.hello.suffix = "HELLO"
@Resource
HelloService helloService;
System.out.println(helloService.sayHello("dyl"));
Result:
"EXAMPLE"-dyl-"HELLO"