前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >@Propertysource 、@ImportResource和@bean 区别

@Propertysource 、@ImportResource和@bean 区别

作者头像
桑鱼
发布2020-03-18 12:18:33
4790
发布2020-03-18 12:18:33
举报

@CongigurationProperties与@Propertysource结合读取指定配置文件(只能用于properties文件)

代码语言:javascript
复制
@PropertySource(value = {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix = "person")
@Validated // 添加JSR-303 javax.validation约束注解
public class Person {

    //    @Value("${person.last-name}") // 从配置文件获取
    @Email // lastName必须是邮箱格式
    private String lastName;
    @Value("#{11*2}") // 直接计算 spEL表达式
    private Integer age;
    @Value("true") // 字面量
    private Boolean boss;
    private Date birth;

    private Map<String, Object> maps;
    private List<Object> lists;
    private Dog dog;
}

@ImportResource 导入Spring的配置文件,让配置文件里面的内容生效 SpringBoot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;通过将@ImportResource标注在一个配置类上,让Spring的配置文件生效

代码语言:javascript
复制
<?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.sangyu.springboot.service.HelloService"></bean>
</beans>
代码语言:javascript
复制
/**
 * Spring 单元测试
 * 可以在测试期间很方便类似编码一样进行自动注入容器等
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class MySpringBoot01ApplicationTests {
    @Autowired
    Person person;
    @Autowired
    ApplicationContext ioc;
    @Test
    public void contextLoads() {
        System.out.println(person);
    }
    @Test
    public void testHelloService(){
        boolean b = ioc.containsBean("helloService");
        System.out.println("====");

        System.out.println(b);
    }
}
代码语言:javascript
复制
@ImportResource(locations = {"classpath:beans.xml"})
@SpringBootApplication
class MySpringBoot01Application {

    public static void main(String[] args) {
        SpringApplication.run(MySpringBoot01Application.class, args);
    }
}
代码语言:javascript
复制
public class HelloService {
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档