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);}@AutowiredMyCustomize myCustomize;@PostConstructpublic 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);}@AutowiredMyCustomize myCustomize;@PostConstructpublic 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