这是我参与 8 月更文挑战的第 12 天,活动详情查看: 8月更文挑战
1. Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。
2. 一般情况下SpringBoot项目结构类似如下:
com
+- example
+- myproject
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- controller
| +- CustomerController.java
|
+- config
| +- swagerConfig.java
|
Application.java是项目的启动类- domain 目录主要用于实体(Entity)与数据访问层(Repository)
- service 层主要是业务类代码
- controller 负责页面访问控制
- config 目录主要放一些配置类
3. @RequestMapping
用@RequestMapping来映射URL,一般将@RequestMapping放在类定义处和方法定义处。
类定义处:规定初步的请求映射,相对于web应用的根目录;
方法定义处:进一步细分请求映射,相对于类定义处的URL。如果类定义处没有使用该注解,则方法标记的URL相对于根目录而言;
@RequestMapping的默认属性为value,@RequestMapping(value="/example")相当于@RequestMapping("/example")
4. springboot原理探讨
(1) 自动配置
pom.xml
- spring-boot-dependencies:核心依赖在父工程中
- 我们在写或者引入一些springboot依赖时,不需要指定版本,就因为有这些版本仓库
启动器
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> -
启动器说白了就是springboot的启动场景;
-
比如spring-boot-starter-web,他会帮我们自动导入web环境所有的依赖;
-
springboot会将所有的功能场景,都变成一个个启动器;
-
如果要使用什么功能,只需要找到对应的启动器
主程序
//@SpringBootApplication:标注这个类是一个springboot的应用
@SpringBootApplication
public class SpringbootO1HellowordApplication {
public static void main(String[] args) {
//将springboot应用启动
SpringApplication.run(SpringbootO1HellowordApplication.class, args);
}
}
- 注解:
@SpringBootConfiguration //springboot的配置
@Configuration //spring配置类
@Component //说明这是一个spring的组件
@EnableAutoConfiguration //自动配置
@AutoConfigurationPackage //自动配置包
@Import({Registrar.class})//导入选择器
@Import({AutoConfigurationImportSelector.class})//自动配置导入选择
5. JSR-303
JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。
Bean Validation 中内置的 constraint

Hibernate Validator 附加的 constraint

转自www.jianshu.com/p/554533f88…
6. yaml配置文件位置及优先级
==优先级顺序:==
- file:./config/
- file:./
- classpath:/config/
- classpath:/

7. @Controller 与@RestController区别
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
@RestController下return的语句会以字符串形式返回。
8. @GetMapping
@GetMapping注释将 HTTP GET 请求映射到特定的处理程序方法。 它是一个组合的注释,用作@RequestMapping(method = RequestMethod.GET)的快捷方式。
- GET - 从指定的资源请求数据。
- POST - 向指定的资源提交要被处理的数据。
9. 处理静态资源
(1)在springboot中,我们可以使用以下方式处理静态资源
- webjars localhost:8080/webjars/
- Public, static, /** ,resources. Localhost:8080/
(2) 优先级:resources>static(默认) > public