@PropertySource和@ImportResour的区别
程序员文章站
2022-05-02 12:14:30
...
@PropertySource:加载指定的配置文件
@PropertySource(value = {"classpath:person.properties"}) @Component @ConfigurationProperties(prefix = "person") //@Validated public class Person { /** * <bean class="Person"> * <property name="lastName" value="字面值/${key} 从环境变量,配置文件中获取值/#{Spel}"></property> * </bean> */ //Value("${person.last-name}") //lastName必须为邮箱格式 //@Email private String lastName; //@Value("#{11*2}") private Integer age; //@Value("true") private Boolean boss;
@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效;
Spring Boot 里面没有Spring的配置文件,我们自己编写的配置文件,不能自动识别;
想让Spring的配置文件生效,加载进来;把@ImportResource标注在配置类上
@ImportResource(locations = {"classpath:beans.xml"})
导入Spring的配置文件,让其生效
不用编写spring的配置文件:
<?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="helloService" class="com.example.demo.service.HelloService"></bean> </beans>
SpringBoot推荐给容器中添加组件的方式:推荐使用全注解的方式
1、配置类======spring配置文件
2、使用@Bean给容器中添加组件
/** * @Configuration:指明当前类是一个配置类,就是替代之前的spring配置文件 * * 在配置文件中用<bean></bean>标签添加组件 */ @Configuration public class MyAppConfig { //将方法的返回值添加到容器中:容器中这个组件默认的ID就是方法名 @Bean public HelloService helloService() { System.out.println("配置类@Bean给容器中添加组件了。。。"); return new HelloService(); } }