zoukankan      html  css  js  c++  java
  • @ConfigurationProperties和@Value不同的使用场景,@Bean添加组件 (6.spring boot配置文件注入)

    接上文

    注释掉@ConfigurationProperties使用@Value注解

        /**
         * <bean class="Person">
         *     <property name="lastName" value="字面量/${key}从环境变量、配置文件中获取值/#{spel}"></property>
         * <bean/>
         */
    //Spring底层注解
        @Value("${person.last-name}")
        private String lastName;
    
        @Value("#{11*2}")
        private Integer age;
    

      

    测试可以获取到

    1.                               @configurationpropertis                        @Value
    2.  功能:                  批量注入                                                  一个个指定
    3. 松散绑定:            支持。last-name等价于lastName           不支持
    4. SPEL                     不支持                                                    支持
    5. JSR303数据校验    支持。校验在属性中@Email                 不支持
    6. 复杂类型封装         支持                                                       不支持 ${person.dogs}报错

    如果只是在某个业务需要获取一下配置文件中的某个值,使用@Value

     如果专门编写一个javaBean和配置文件进行映射,就直接用@configurationProperties批量注入

    @PropertySource 和 @ImportResource

    @PropertySource:加载指定的配置文件

    测试通过

     @ImportResource

    拿到ioc容器

    自己编写的配置文件不能生效自动识别

    @ImportResource(locations = {"classpath:beans.xml"})导入spring的配置文件让其生效
    加到测试类上,测试就可以找到了

     

    
    

     SpringBoot推荐给容器添加组件的方式: 全注解的方式

    1.配置类

    service下有一个服务类

     新建config目录,创建一个配置类

    下图 启动测试类,上图可见成功了

     

    如果改成下图就会查找失败

    springboot推荐注解方式@Bean给容器中添加组件

    package com.tabctrlshift.springboot.config;
    
    import com.tabctrlshift.springboot.service.HelloService;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    //指明sb当前类这是一个配置类
    //以前用<bean>标签
    @Configuration
    public class MyAppConfig {
    
    //    将方法的返回值添加到容器中,容器中这个组件默认id就是方法名
        @Bean
        public HelloService helloService08(){
            System.out.println("配置类@Bean给容器中添加组件了");
            return new HelloService();
        }
    }
    

      





    配置文件占位符

    可以用:指定默认值

  • 相关阅读:
    贫血模型和充血模型
    DES加密解密
    DDD讀書筆記(四)
    HTTP Caching
    ASP.NET 取得 Request URL 的各个部分和通过ASP.NET获取URL地址的方法
    datalist用aspnetpager分页
    visual studio.net 快捷键[转]
    DataList分页方法
    C#连接各类数据库 [转]
    C#日期函数[转]
  • 原文地址:https://www.cnblogs.com/tabCtrlShift/p/9074600.html
Copyright © 2011-2022 走看看