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了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
随机推荐
- SignalR循序渐进(三)简易的集群通讯组件
上一篇演示了泛型Hub的实现,微软于6月17日更新了SignalR 2.1.0,然后自带了泛型Hub,于是就不需要自己去实现了…(微软你为啥不早一个月自带啊…).不过没关系,SignalR出彩之处不在 ...
- NGINX优化参数
(1)nginx运行工作进程个数,一般设置cpu的核心或者核心数x2 如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor / ...
- WebKit HTML、CSS、JS
开发者需要了解的WebKit https://www.infoq.cn/article/webkit-for-developers 开发者需要了解的 WebKit 彭超 2013 年 3 月 18 ...
- Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2
环境:centos7.1 docker run -t -i centos /bin/bash 运行上面的命令开启容器时报错: /usr/bin/docker-current: Error respon ...
- Favorite Donut--hdu5442(2015年长春网选赛,kmp,最大表示法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5442 打比赛的时候还没学kmp更没有学最大最小表示法,之后做完了kmp的专题,学了它们,现在再来做这道 ...
- ubuntu安装Jenkins指导
乌班图安装Jenkins指导 安装Java :apt install default-jre 参考:https://www.cnblogs.com/xionggeclub/p/7117004.html ...
- 微信iOS版更新:可批量管理不常联系的朋友
iOS版微信更新了v6.5.13版本,在新版本当中微信新增加了可批量管理不常联系的朋友功能,同时在群资料页可以查看最近收到的小程序,不过据网友爆料,腾讯在新的更新日志当中已经删除了“批量管理不常联系的 ...
- oracle查看被锁的表和被锁的进程,杀掉进程
-- 1. 查看被锁的表 SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name ...
- go-007-条件语句
一.概述 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句. 1.if结构 if 布尔表达式 { /* ...
- 纯css,div隐藏滚动条,保留鼠标滚动效果。
示例1: html,body { height: 100%; } body { overflow: hidden; } .full-screen { position: relative; width ...