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();
        }
    }
    

      





    配置文件占位符

    可以用:指定默认值

  • 相关阅读:
    【BZOJ1093】【ZJOI2007】最大半联通子图 [DP][Tarjan]
    【BZOJ1926】【SDOI2010】粟粟的书架 [主席树]
    【BZOJ4069】【APIO2015】巴厘岛的雕塑 [贪心][DP]
    【BZOJ2815】【ZJOI2012】灾难 [LCA]
    【BZOJ3453】XLkxc [拉格朗日插值法]
    【BZOJ2850】巧克力王国 [KD-tree]
    《类和对象》
    @RequestMapping映射请求
    010-Python-socket编程
    SSH-Struts第二弹:一个Form提交两个Action
  • 原文地址:https://www.cnblogs.com/tabCtrlShift/p/9074600.html
Copyright © 2011-2022 走看看