zoukankan      html  css  js  c++  java
  • springBoot 自动装配,SpringBoot自动配置,SpringBoot自动加载

    springBoot 自动装配,SpringBoot自动配置,SpringBoot自动加载

    ================================

    ©Copyright 蕃薯耀 2021-12-22

    https://www.cnblogs.com/fanshuyao/

    一、定义配置类

    import java.util.Map;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    @ConfigurationProperties(prefix = "lqy.java.auto", ignoreUnknownFields = true)
    public class MyProperties {
    
        private Integer id;
        private String name;
        private Map<String, String> map;
        private String from;
        private boolean enable;
        
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Map<String, String> getMap() {
            return map;
        }
        public void setMap(Map<String, String> map) {
            this.map = map;
        }
        
        
        public String getFrom() {
            return from;
        }
        public void setFrom(String from) {
            this.from = from;
        }
        
        
        public boolean isEnable() {
            return enable;
        }
        public void setEnable(boolean enable) {
            this.enable = enable;
        }
        @Override
        public String toString() {
            return "MyProperties [id=" + id + ", name=" + name + ", map=" + map + ", from=" + from + "]";
        }
        
        
        
        
    }

    二、定义application.properties文件

    #lqy.java.auto.enable=false
    lqy.java.auto.id=10
    lqy.java.auto.name=张三aa
    lqy.java.auto.map.a=a-一
    lqy.java.auto.map.b=b-二

    三、定义自动配置类:MyPropertiesAutoConfiguration

    需要引入MyProperties:

    @EnableConfigurationProperties(value = MyProperties.class)

    import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import lqy.java.validation.hibernate.bean.User;
    
    @Configuration(proxyBeanMethods = false)
    @EnableConfigurationProperties(value = MyProperties.class)
    @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
    @ConditionalOnClass(User.class)//User类在类路径中才生效
    @ConditionalOnProperty(prefix = "lqy.java.auto", value="enable", havingValue = "true", matchIfMissing = true)
    public class MyPropertiesAutoConfiguration {
    
        @Bean
        public User getUser(MyProperties myProperties) {
            
            System.out.println("myProperties = " + myProperties);
            
            User u = new User();
            u.setId(myProperties.getId());
            u.setName(myProperties.getName());
            
            System.out.println("User u = " + u);
            
            return u;
        }
    }

    四、增加自动加载配置文件:spring.factories

    在src/main/resources/META-INF/的路径增加spring.factories文件,没有META-INF则新建

    src/main/resources/META-INF/spring.factories

    spring.factories文件的内容:

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    lqy.java.validation.hibernate.auto.MyPropertiesAutoConfiguration

    五、springboot @ConfigurationProperties 中文乱码解决方案:

    springboot @ConfigurationProperties 中文乱码解决方案见:

    https://www.cnblogs.com/fanshuyao/p/15718594.html

    (时间宝贵,分享不易,捐赠回馈,^_^)

    ================================

    ©Copyright 蕃薯耀 2021-12-22

    https://www.cnblogs.com/fanshuyao/

    今天越懒,明天要做的事越多。
  • 相关阅读:
    线段树区间异或--差分时间复杂度优化
    数独
    sql语句-根据动态参数去拼sql
    Python-读取文件的大小
    Docker-教你如何通过 Docker 快速搭建各种测试环境
    Docker-本地镜像发布到阿里云
    Docker- Mysql数据库主从同步配置方法
    mysql-如何删除主从同步
    Docker数据卷的介绍和使用
    Docker镜像-拉取并且运行
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/15719436.html
Copyright © 2011-2022 走看看