Spring Boot : 属性配置&Controller注解补充(四)
来源:互联网 发布:姚明身体数据 编辑:程序博客网 时间:2024/05/29 06:41
目录
- 目录
- 属性配置文件分类
- 属性配置在类中使用Value标签的使用
- 属性配置在类中使用ConfigurationProperties标签的使用
- springprofilesactive 的使用
- jar 方式启动
- RequestParam 和 GetMapping 介绍
1.属性配置文件分类
属性配置两种文件: .properties和.yml,如我们想要配置tomcat启动时端口和上下文,两种文件配置分别如下:
properties :
server.port=8081server.context-path=/boot
yml : (注意:后边有空格) (推荐使用)
server: port: 8082 context-path: /boot
大家配置完可以分别通过 http://localhost:8081/boot/ 和 http://localhost:8082/boot/ 测试下.
2.属性配置在类中使用(@Value标签的使用)
application.yml 如下,我们要使用配置文件中的name和age
server: port: 8081 context-path: /name: miloage: 27
SampleController.java 如下 :
package cn.milo.controllor;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;/** * Created by admin on 2017/6/25. */@Controllerpublic class SampleController { @Value("${name}") private String name; @Value("${age}") private Integer age; @RequestMapping("/") @ResponseBody public String demo1(){ return "name : " + name + " , age = " + age; }}
通过http://localhost:8081/验证 输出结果 :
name : milo , age = 27
有时我们需要在配置中使用上边已经配置好的配置如 :
server: port: 8081 context-path: /name: miloage: 27shangmingtao: name is ${name} , age = ${age}
SampleController.java 如下 :
@Value("${shangmingtao}") private String shangmingtao; @RequestMapping("/") @ResponseBody public String demo1(){ return shangmingtao; }
通过http://localhost:8081/验证 输出结果 :
name is milo , age = 27
3.属性配置在类中使用(@ConfigurationProperties标签的使用)
将配置文件修改为如下 :
server: port: 8081 context-path: /shangmingtao: name: milo age: 27
新建一个java类, shangmingtao.java(这是我名字 :D)
package cn.milo.controllor;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;/** * Created by admin on 2017/7/4. */@Component //这个注解不能丢,否则无法注入@ConfigurationProperties(prefix = "shangmingtao") //指定前缀public class shangmingtao { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; }}
SampleController.java 如下 :
package cn.milo.controllor;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;/** * Created by admin on 2017/6/25. */@Controllerpublic class SampleController { @Autowired private shangmingtao shangmingtao; @RequestMapping("/") @ResponseBody public String demo1(){ return shangmingtao.getName() + " , " + shangmingtao.getAge(); }}
访问 : http://localhost:8081/ 结果 :
milo , 27
4.spring.profiles.active 的使用
很多时候我们生产环境和开发环境用的配置是不一样的.每次都要改一大堆配置很麻烦,所以我们通过spring.profiles.active进行切换. resources目录结构 :
application.yml
spring: profiles: active: dev #根据需要选择启动时选用的配置文件
application-dev.yml
server: port: 8081 context-path: /shangmingtao: name: milo age: 27
application-prod.yml
server: port: 8082 context-path: /shangmingtao: name: milo age: 18
通过spring-boot:run 或执行main方法启动均可,通过访问8081和8082验证自己的配置是否正确.
5.jar 方式启动
通过 clean package方式将项目打成jar包,jar包存放在target目录中,不清楚的同学可以看下我之前写的 maven入门:依赖 聚合 继承(一) , 进到jar所在的目录通过如下命令启动 :
java -jar bootdemo4web.jar --spring.profiles.active=prod
和4中的测试结果一样.
6.@RequestParam 和 @GetMapping 介绍
我之前写过Controller常用注解的介绍, Spring Boot : 自动JSON转换和热部署(二) , 这里做下补充.
@RequestParam 注解 : 此注解用来接通过url传递的参数,如: http://localhost:8082/?id=1 ,大家注意啊,这个url没写错.@RequestMapping(“/”)时这样写是OK的.
看下代码:
@RequestMapping("/") @ResponseBody public String demo1(@RequestParam(value = "id" , defaultValue = "2") Integer id){ /* defaultValue 中的值必须是字符串,RequestParam会自动转型. */ return shangmingtao.getName() + " , " + shangmingtao.getAge() + " , id = " +id; }
@GetMapping注解 :
@GetMapping("demo11") //和下方写法等同@RequestMapping(value = "demo11" , method = RequestMethod.GET)
还有@PostMapping同理.
- Spring Boot : 属性配置&Controller注解补充(四)
- Spring boot扫描不到controller注解
- spring boot注解@SpringBootApplication、@Controller、@RestController
- Spring Boot 属性配置
- spring boot 注解配置redis
- Spring boot入门四 注解说明
- Spring Boot 在Controller使用@Transactional注解导致@RequestMapping失效
- spring boot自定义属性配置
- Spring Boot项目属性配置
- Spring boot 双主键注解配置
- spring boot中的java配置中的注解
- spring boot @Value注解读取配置
- spring boot:配置mybatis以及注解事务
- SSM注解配置 往Spring Boot 过渡
- spring boot @ConfigurationProperties @EnableConfigurationProperties 配置注解使用
- Spring Boot Controller
- spring boot 之 controller
- Spring Boot Controller
- TCP/IP下三层协议----网络接口层与网络层
- Linux-编写Shell的几个技巧
- 判断一个字符串是否为另外一个字符串旋转之后的字符串
- 22day NSOperation
- SimpleShader
- Spring Boot : 属性配置&Controller注解补充(四)
- 错误、调试、测试
- 听罗辑思维关于商业模式的思考
- C8051F120单片机双串口配置(uart0,uart1)
- 整理数据代码
- 阿里云服务器CentOS 6.5系统搭建php开发环境(apache+php+mysql)
- PAT乙级1010. 一元多项式求导 (25)
- 利用Hexo + GitHub搭建免费的个人博客
- 浅拷贝和深拷贝