springboot自定義常量配置


現在你建一個類:

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Created by ming on 2016/10/24.
 * locations={} 可以引入其余的屬性文件
 */

@ConfigurationProperties(prefix = "constant",locations={classpath:Constant.properties})
public class Constant {

    private String name;

    private String sex;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

然后在你的配置屬性文件加上:

#your constant
constant.name=ming
constant.sex=男

然后在spring啟動類上加上配置,目的是為了注入:

import javax.servlet.Filter;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.MultipartAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.FilterRegistrationBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.filter.HttpPutFormContentFilter;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;

import com.foreveross.web.weixin.Constant;


//exclude表示自動配置時不包括Multipart配置
@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
@SpringBootApplication
@EnableTransactionManagement
@EnableConfigurationProperties(Constant.class)
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }


    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("UTF-8");
        registrationBean.setFilter(characterEncodingFilter);
        return registrationBean;
    }

    @Bean
    public Filter initializeHttpPutHandler() {
        return new HttpPutFormContentFilter();
    }

    @Bean
    public CharacterEncodingFilter initializeCharacterEncodingFilter() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        filter.setForceEncoding(true);
        return filter;
    }

    @Bean(name = "multipartResolver")
    public CommonsMultipartResolver multipartResolver() {
        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
        resolver.setDefaultEncoding("UTF-8");
        resolver.setResolveLazily(true);// resolveLazily屬性啟用是為了推遲文件解析
        resolver.setMaxInMemorySize(40960);
        resolver.setMaxUploadSize(2 * 1024 * 1024);// 上傳文件大小 2M 50*1024*1024
        return resolver;
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }

}

最后使用如下:

@Autowired
    private Constant constant;

    @RequestMapping(value = "/test")
    public void test() {
        System.out.println(constant.getName() + constant.getSex());
    }

 

然后常量就能訪問了。這個常量好處就是你可以根據不同的屬性文件配置,在生產或者開發文件配置不同的變量值了。。。

 

 

 

so  day day up...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM