`
wiselyman
  • 浏览: 2078496 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:80903
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130005
社区版块
存档分类
最新评论

Spring Boot使用自定义的properties

 
阅读更多

      spring boot使用application.properties默认了很多配置。但需要自己添加一些配置的时候,我们应该怎么做呢。

 

若继续在application.properties中添加

如:

 

wisely2.name=wyf2
wisely2.gender=male2

 

定义配置类:

@ConfigurationProperties(prefix = "wisely2")
public class Wisely2Settings {
	private String name;
	private String gender;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}

}

 

若新用新的配置文件

如我新建一个wisely.properties

wisely.name=wangyunfei
wisely.gender=male

 需定义如下配置类

 

@ConfigurationProperties(prefix = "wisely",locations = "classpath:config/wisely.properties")
public class WiselySettings {
	private String name;
	private String gender;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}

}

 

 

最后注意在spring Boot入口类加上@EnableConfigurationProperties

@SpringBootApplication
@EnableConfigurationProperties({WiselySettings.class,Wisely2Settings.class})
public class DemoApplication {

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

  

 使用定义的properties

在别的bean中可直接注入

@Controller
public class TestController {
	@Autowired
	WiselySettings wiselySettings;
	@Autowired
	Wisely2Settings wisely2Settings;

	@RequestMapping("/test")
	public @ResponseBody String test(){
		System.out.println(wiselySettings.getGender()+"---"+wiselySettings.getName());
		System.out.println(wisely2Settings.getGender()+"==="+wisely2Settings.getGender());
		return "ok";
	} 
}

 

新书推荐《JavaEE开发的颠覆者: Spring Boot实战》,涵盖Spring 4.x、Spring MVC 4.x、Spring Boot企业开发实战。

 

京东地址:http://item.jd.com/11894632.html

当当地址:http://product.dangdang.com/23926195.html

亚马逊地址:http://www.amazon.cn/图书/dp/B01D5ZBFUK/ref=zg_bsnr_663834051_6 

淘宝地址:https://item.taobao.com/item.htm?id=528426235744&ns=1&abbucket=8#detail

 

 

 

或自己在京东、淘宝、亚马逊、当当、互动出版社搜索自选。

 


6
2
分享到:
评论
16 楼 yangjianzhouctgu 2018-05-24  
汪老师,你好,我想就spring boot测试方面的问题请教一下您:一个好的测试用例应该是可以在任何时候的都可以执行成功的,对执行结果有直接影响的就是测试上下文了,在spring boot之前(applicationContext.xml时),unitils可以用来准备测试前的数据,测试后回归掉,这就保证了一个测试用例可以在任何时候都可以执行成功。请问您一下,spring boot的测试是怎么保证这一点的呢?目前有这样的测试工具吗?我在网上看见有spring-test-dbunit这个工具,但是它提供的功能与unitils的功能相差较远。谢谢您
15 楼 yxzkm 2017-05-09  
汪老师,你好!
我的springboot项目中有一个拦截器,我想在拦截器中注入参数类,但是总是无法注入,报空指针,请看下面的代码:

@ComponentScan("com.abc")
@EnableScheduling
@EnableAutoConfiguration
@EnableConfigurationProperties({GlobalSettings.class}) 
public class MyProject extends WebMvcConfigurerAdapter{
    @Bean
    public UserSecurityInterceptor getMyInterceptor(){
        return new UserSecurityInterceptor();
    }
    public void addInterceptors(InterceptorRegistry registry) {
        UserSecurityInterceptor()).addPathPatterns("/my**");
        registry.addInterceptor(getMyInterceptor()).addPathPatterns("/my**");
        super.addInterceptors(registry);
    }
    ......
}

@Component
public class UserSecurityInterceptor implements HandlerInterceptor {
    @Autowired 
    GlobalSettings globalSettings; 

    public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {

    System.out.println("这里报空指针:"+globalSettings.getAppName());


请问这是什么原因造成的呢? springboot加载bean的时候,有顺序要求吗?
谢谢!

14 楼 werin 2017-05-09  
18940818955 写道
locations 这个属性没了?


看看这个文章http://fabiomaffioletti.me/blog/2017/02/09/spring-configuration-properties-locations-deprecation-another-approach/
13 楼 werin 2017-05-09  
18940818955 写道
locations 这个属性没了?

我也发现没了,这可如何是好
12 楼 18940818955 2017-02-07  
locations 这个属性没了?
11 楼 di1984HIT 2017-02-02  
太麻烦了。。。。。  
10 楼 chengxuetao 2017-01-09  
按照书中第五章例子,启动之后不能访问页面,启动日志报
Cannot determine embedded database driver class for database type NONE
请问这个是哪里没有配置吗
我是用的版本为1.4.3.RELEASE
9 楼 pg_guo 2017-01-03  
请问我在拦截器中定义一个
@Autowired 
WiselySettings wiselySettings;
为什么是null呢,需要什么配置吗?谢谢
8 楼 k19421 2016-11-30  
荆人七十 写道
如果我有一个配置类和多个格式相同内容不同的配置文件,我想根据这几个配置文件生成几个不同的配置类实例,用注解应该怎么做?

找到了
定义好类
public class DataConfig {
private String url;
private String driverClassName;
private String username;
private String password;
private Tomcat tomcat;
        ...getter and setter...
}

在配置类里面定义
@Configuration
public class PropertiesConfTest {
@Bean(name="edmsDataConfig")
@ConfigurationProperties(prefix = "datasource.edms")
public DataConfig edmsDataConfig(){
return new DataConfig();
}

@Bean(name="uicDataConfig")
@ConfigurationProperties(prefix = "datasource.uic")
public DataConfig uicDataConfig(){
return new DataConfig();
}
}
7 楼 k19421 2016-11-30  
荆人七十 写道
如果我有一个配置类和多个格式相同内容不同的配置文件,我想根据这几个配置文件生成几个不同的配置类实例,用注解应该怎么做?

我也有这个问题,不知道怎么处理
6 楼 荆人七十 2016-09-23  
如果我有一个配置类和多个格式相同内容不同的配置文件,我想根据这几个配置文件生成几个不同的配置类实例,用注解应该怎么做?
5 楼 sk815 2016-08-12  
您好,看到你书上security的部分 页面有个hasRole(‘ROLE_ADMIN’)方法判断用户角色 但是为什么换了个名称就不起作用了呢 比如 hasRole('sys_admin') 就无效
4 楼 wiselyman 2016-08-05  
ilyyhb 写道
你书里的源代码在哪下载啊?

http://www.broadview.com.cn/?#book/bookdetail/bookDetailAll.jsp?book_id=b47a1c54-5747-4628-b3e2-b8bc4899a97e&isbn=978-7-121-28208-9
3 楼 ilyyhb 2016-08-02  
你书里的源代码在哪下载啊?
2 楼 qianjh 2016-07-12  
同楼上,我也合肥的。
1 楼 happynewplay 2016-07-07  
刚买的你的书。。难得的好书,顺便说一句我也是合肥的

相关推荐

Global site tag (gtag.js) - Google Analytics