1. @Import
@Import注解是引入java类:
-
导入@Configuration注解的配置类(4.2版本之前只可以导入配置类,4.2版本之后也可以导入普通类)
-
导入ImportSelector的实现类
-
导入ImportBeanDefinitionRegistrar的实现类
@SpringBootApplication
@Import(MyCustomize.class)
public class StartBootReadConfig {public static void main(String[] args) { SpringApplication.run(StartBootReadConfig.class, args); } @Autowired MyCustomize myCustomize; @PostConstruct public void init(){ myCustomize.printf(); }
}
2. @ImportResource
@ImportResource是引入spring配置文件.xml,它导入的是使用xml配置文件注入的对象。
新建测试类:
public class MyCustomize {
public void printf(){
System.out.println("MyCustomize.printf");
}
}
新建一个bean的配置文件mycustomize.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="mycustomize" name="mycustomize" class="com.lx.readconfig.service.MyCustomize">
</bean>
</beans>
使用ImportResource导入:
@SpringBootApplication
@ImportResource("mycustomize.xml")
public class StartBootReadConfig {
public static void main(String[] args) {
SpringApplication.run(StartBootReadConfig.class, args);
}
@Autowired
MyCustomize myCustomize;
@PostConstruct
public void init(){
myCustomize.printf();
}
}
3.@PropertySource
@PropertySource是引入自定义配置文件(yml或properties),用于spring boot 配置文件(yml或properties)与实体属性映射。
@Component
//@PropertySource("classpath:myext.properties")
//PropertySource默认不支持yml或者yaml的解析
@PropertySource(value = "classpath:myext.yml", factory = CustomizePropertySourceFactory.class)
@ConfigurationProperties(prefix = "keyfieldpropertiesext")
@Data