本文共 7358 字,大约阅读时间需要 24 分钟。
org.springframework.boot spring-boot-starter-parent 2.1.1.RELEASE
通过调用run,将业务委托给了Spring Boot的SpringApplication类。SpringApplication将引导我们的应用,启动Spring,相应地启动被自动配置的Tomcat web服务器。我们需要将 helloMain.class 作为参数传递给run方法来告诉SpringApplication谁是主要的Spring组件。为了暴露任何的命令行参数,args数组也会被传递过去。
package com.antRain;import org.springframework.boot.Banner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;//标识持久层mapper接口,用来找到mapper对象@MapperScan("com.antRain.Dao")@SpringBootApplicationpublic class helloMain { public static void main(String[] args) { SpringApplication application = new SpringApplication(helloMain.class); application.setBannerMode(Banner.Mode.OFF); application.run(args); }}
SpringBoot相关注解
Spring Boot 配置文件加载优先级如下:
Devtools全局设置属性在路径 (~/.spring-boot-devtools.properties 当devtools激活的时候).
测试用例上的 @TestPropertySource . 测试用例上的 @SpringBootTest#properties注解. 命令行参数. 配置在SPRING_APPLICATION_JSON 的属性(环境变量或系统属性中内嵌的内联JSON). ServletConfig初始化参数. ServletContext 初始化参数. 配置在 java:comp/env的 JNDI(Java Naming and Directory Interface) 属性. Java系统属性 (System.getProperties()). 操作系统OS(Operating System)环境变量. RandomValuePropertySource 中的属性只包括在包random.*. 没有打进jar包的Profile-specific 应用属性 (application-{profile}.properties 和 YAML ). 打进jar包中的Profile-specific 应用属性 (application-{profile}.properties 和 YAML). 没有打进jar包的应用配置 (application.properties 和 YAML). 打进jar包中的应用配置(application.properties 和 YAML). @Configuration类上的@PropertySource注解 . 默认属性 (配置在文件 SpringApplication.setDefaultProperties).
server: port: 8081 path: /hello
k: v:字面直接来写;
字符串默认不用加上单引号或者双引号; “”:双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思 ‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
k: v:在下一行来写对象的属性和值的关系;注意缩进
对象还是k: v的方式 行内写法:
friends: { lastName: zhangsan,age: 18}
用- 值表示数组中的一个元素
users: - 张三 - 李四
行内写法
users: [张三,李四]
user: id: 1 name: lisi pawd: 123456
package com.antRain.controller;import com.antRain.service.UserService;import org.mybatis.spring.annotation.MapperScan;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.ComponentScan;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;@Controller@ComponentScan({ "com.antRain.service"})public class hello { //读取配置文件里面的内容 @Value("${user.id}") private Integer id; @ResponseBody @RequestMapping("/hello") public String hello(){ return "hello 用户"+id; } @Autowired private UserService userService; @RequestMapping("getUser/{id}") public String GetUser(@PathVariable int id){ return userService.getUser(id).toString(); }}/** SpringMVC部分 @RequestMapping 用于映射Web请求,包括访问路径和参数 ResponseBody 支持将返回值放在response内,而不是一个页面 @PathVariable 用于接收路径参数 @RestController 该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody @ControllerAdvice 通过该注解,我们可以将对于控制器的全局配置放置在同一个位置,注解了@Controller的类的方法可使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上, @ExceptionHandler 用于全局处理控制器里的异常 @InitBinder 用来设置WebDataBinder,WebDataBinder用来自动绑定前台请求参数到Model中。 @ModelAttribute 本来的作用是绑定键值对到Model里,在@ControllerAdvice中是让全局的@RequestMapping都能获得在此处设置的键值对。*** */
类的相关注解
方法的相关注解
Spring注解
SpringMvc 注解
@ConfigurationProperties | @Value | |
---|---|---|
功能 | 批量注入配置文件中的属性 | 一个个指定 |
松散绑定(松散语法) | 支持 | 不支持 |
SpEL | 不支持 | 支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
car: color: white length: 4499 name: - porsche - Bill buy: 2019/12/25 parts: { "峰值扭矩": "260Nm", "加速度": 50}
package com.antRain.bean;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;import java.util.Date;import java.util.List;import java.util.Map;@Component@ConfigurationProperties(prefix = "car")public class Car { private Listname; //车的名称 @Value("${car.color}") private String color ;//颜色 @Value("#{2*2100}") private Integer length;//长度mm private Date buy;//购买日期 private Map parameter;//参数信息}
转载地址:http://hhden.baihongyu.com/