spring手动配置
本文总结自:https://www.cnblogs.com/V1haoge/p/7183408.html
SpringBoot中免除了大部分配置,但是对于一些特定的情况,还是需要我们进行手动配置的。
手动配置有两种方式:
1. SpringBoot为我们提供了application.properties配置文件,我们可以对默认的配置进行修改,还能加入一些第三方的配置,几乎所有配置都可以写到application.peroperties文件中,这个文件会被SpringBoot自动加载,
2. 自定义一个配置文件,但这些文件就需要我们进行手动加载。
备注1:SpringBoot可以识别两种格式的配置文件,yml与properties,我们可以将application.properties文件换成application.yml,这两个文件都可以被SpringBoot自动识别并加载,
但如果是自定义的配置文件,就最好还是使用properties格式的文件,因为SpringBoot中暂时还并未提供手动加载yml格式文件的功能(这里指注解方式)。
备注2:application.properties配置文件需要放置到指定的位置:src/main/resource目录下,一般自定义的配置文件也位于此目录之下。
如何使用配置项?
1. 只要是加载到Spring容器中的配置项都可以直接使用@Value("${key}")的方式来引用,一般将其配置在字段顶部,表示将配置项的值赋值给该字段。
2. 将这些配置项与一个JavaBean绑定起来使用,绑定一次,我们就可以随时使用。
绑定使用分两种情况:
1. 将application.properties中的配置与JavaBean类绑定
与属性绑定的JavaBean的类定义顶部加@Component注解和@ConfigurationProperties(prefix="key")注解,
前者的目的是为了JavaBean可以被SpringBoot项目启动时候被扫描到并加载到Spring容器之中,
后者为属性绑定注解,它的作用就是将指定的前缀的配置项的值与JavaBean的字段绑定,得与@EnableConfigurationProperties(JavaBean.class)配合使用,注意二者并非使用在同一位置,
注意:为了绑定的成功,字段的名称与配置项键的最后一个键名得相同,这样整个键在去掉前缀的情况下就和字段名称一致,以此来进行绑定。
2. 将自定义配置文件中的配置与Javabean绑定。
与之前的基本相同,只是配置不能自动加载,得手动加载
额外配置:
在JavaBean之上加上@PropertySource注解。
将@Component改为@Configuration,为什么这么做呢?
@Configuration注解的底层就是@Component,但是二者意义不同,@Configuration注解侧重配置之意,@Component侧重组件之意,当然配置也是项目组件之一,在这里我们要将配置文件属性与JavaBean绑定,当然更侧重配置之意。
@EnableConfigurationProperties(JavaBean.class)
@EnableConfigurationProperties注解@ConfigurationProperties注解配套使用,
标注有@ConfigurationProperties注解的Beans可以被使用标准的方式注册(使用@Bean注解),或者,直接用使用@EnableConfigurationProperties指定注册,例如:@EnableConfigurationProperties(JavaBean.class)
一个例子:
- package com.donghao.model;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.PropertySource;
- @Configuration
- @PropertySource("classpath:donghao.properties")
- @ConfigurationProperties(prefix="donghao1")
- public class Donghao {
- private String name;
- private String sex;
- private String age;
- 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;
- }
- public String getAge() {
- return age;
- }
- public void setAge(String age) {
- this.age = age;
- }
- }
定义控制器:DonghaoController
- package com.donghao.controller;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.context.properties.EnableConfigurationProperties;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import com.donghao.model.Donghao;
- @RestController
- @RequestMapping("/donghao")
- @EnableConfigurationProperties(Donghao.class)
- public class DonghaoController {
- @Autowired
- Donghao donghao;
- @Value("${donghao.name}")
- private String name;
- @Value("${donghao.sex}")
- private String sex;
- @Value("${donghao.age}")
- private String age;
- @RequestMapping("/hello")
- public String hello(){
- return "我的名字叫"+name+",我是"+sex+"生,今年"+age+"岁了!";
- }
- @RequestMapping("/ss")
- public String ss(){
- return donghao.getName()+donghao.getSex()+donghao.getAge();
- }
- }
定义启动入口类:DonghaoApplication.java
- package com.donghao;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- @SpringBootApplication
- public class DonghaoApplication {
- public static void main(String[] args) {
- SpringApplication.run(DonghaoApplication.class, args);
- }
- }
spring手动配置的更多相关文章
- Spring boot 默认静态资源路径与手动配置访问路径
在application.propertis中配置 ##端口号server.port=8081 ##默认前缀spring.mvc.view.prefix=/## 响应页面默认后缀spring.mvc. ...
- spring xml配置注入改为手动注入过程
项目中需要使用MQ组件来接受消息,但是有的时候,在使用的时候,并不能满足spring注入的条件,无法注入.例如 在jfinal的config的afterJFinalStart中,由于jfinal集成s ...
- Spring boot 默认静态资源路径与手动配置访问路径的方法
这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在application.propertis中配置 ##端口号 ...
- 手动配置三大框架整合:Spring+Struts2+mybatis
如今主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,事实上它们都是一样的,以下我来把环境搭建一下: [导入相关jar包]新建web项目projectms ...
- spring MVC配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- Spring mvc 配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- maven spring mybatis配置注意点
以下对使用maven配置spring+mybatis项目时,完成基本的配置需要添加的一些信息进行说明.仅对mybatis部分进行列举. maven添加mybatis支持 <!-- mybatis ...
- spring的配置与使用
spring的配置与使用 一.Spring介绍 1. 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由 RodJohnson 在其著 ...
- spring MVC配置详解(转)
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
随机推荐
- IOS 十位数0补齐
NSCalendar *calendar = [NSCalendar currentCalendar]; unsigned unitFlags = NSYearCalendarUnit | NSMon ...
- 深入HQL学习以及HQL和SQL的区别
HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. ...
- CentOS7.2安装配置FTP服务器VSFTP
1,查看系统版本 2,yum安装vsftpd yum -y install vsftpd 3,修改配置文件 vim /etc/vsftpd/vsftpd.conf local_enable=YES w ...
- Hadoop伪分布安装详解(四)
目录: 1.修改主机名和用户名 2.配置静态IP地址 3.配置SSH无密码连接 4.安装JDK1.7 5.配置Hadoop 6.安装Mysql 7.安装Hive 8.安装Hbase 9.安装Sqoop ...
- Servlet------>mvc模式原理图
常用开发模式: 客户在客户端 访问,发送请求到servlet servlet调用service接口 service实现类调用dao接口 dao接口通过jdbc技术操作数据库,并存储到javabean, ...
- fastjson的deserializer的主要优化算法
JSON最佳实践 | kimmking's blog http://kimmking.github.io/2017/06/06/json-best-practice/ Fastjson内幕 Java综 ...
- 购物车删除商品,总价变化 innerHTML = ''并没有删除节点,内容仍存在
w元素的上的下. function deleteLi(tmpId) { //document.getElementById(tmpId).innerHTML = ''; var wdel = docu ...
- 一个父亲的教育札记——leo鉴书58
由于年纪和工作的原因.绝大部分小说我都不看--没空,如今小说写的也太空.但对文笔有提高的文章我是非常关注的,知道韩寒不是由于<三重门>(我报纸也不怎么看).而是此前编辑感觉我文笔差. ...
- Android training–android studio
又重新开始学习android开发了,希望这次不是三分钟热度.之前是利用eclipse+ADT来开发的,官网上建议用Android Studio.刚好重装了系统,升级了内存.于是下个studio来学学. ...
- 『HTML5实现人工智能』小游戏《井字棋》发布,据说IQ上200才能赢【算法&代码讲解+资源打包下载】
一,什么是TicTacToe(井字棋) 本游戏为在下用lufylegend开发的第二款小游戏.此游戏是大家想必大家小时候都玩过,因为玩它很简单,只需要一张草稿纸和一只笔就能开始游戏,所以广受儿童欢迎. ...