死磕三天深入理解SpringBoot核心注解原理

Spring Boot介绍:

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。**

SpringBoot所具备的特征:

  1. 可以创建独立的Spring应用程序,并且基于其Maven或者Gradle插件,可以创建可执行的JARs和WARs;

  2. 内嵌Tomcat或Jetty等Servlet容器;

  3. 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;

  4. 尽可能自动配置Spring容器;

  5. 提供准备好的特性,如指标、健康检查和外部化配置;

  6. 绝对没有代码生成,不需要XML配置;

SpringBoot启动类中

  • 用@StringBootApplication注解标明此类为启动类

  • @StringBootApplication注解是SpringBoot项目的核心注解,目的是开启自动配置

  • 在这个配置中包含了以下三种注解:

  • @StringBootConfiguration(此注解意思为:标明此类为配置类)

  • @EnableAutoSpringBootConfiguration(此注解意思为:自动配置)

  • @ComponentScan(此注解意思为:扫描包实例化)

Thymeleaf模板:

Thymeleaf代替了我们之前web开发的JSP它也可以轻易的与Springmvc等web框架进行集成

Thymeleaf特点:

能直接在浏览器中打开并正确,显示模板页面,不需要重启整个web应用

由于Thymeleaf使用了XMLDOM解析器,因此它并不适合用于处理大规模的XML文件

共享Session

1、引入redis依赖

<pre style="font-family: "Courier New" !important; font-weight: 100; cursor: url("https://files-cdn.cnblogs.com/files/miluluyo/cursor.ico"), auto; overflow: auto; margin: 0px; padding: 0px; overflow-wrap: break-word; font-size: 12px !important;"><dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
</dependency></pre>

2、添加注解

@EnbaleRedisHttpSession(maxIncativeIntervaLInsecands=46561*50)

maxIncativeIntervaLInsecands:设置Session失效时间

SpringBootJpa:

  • Java持久化规范、它的出现主要是为了简化,现有的持久化开发工作和整合ORM技术

  • SpringBoot是Spring基于ORM框架,JPA规范的基础上封装的一套JPA应用框架,可以大大提高开发效率

  • SpringBootJpa默认预先生成了一些基本的CURD方法:例如增删改查等

  • SpringBoot中应当注意的注解及其作用:

  • @PathVariable是spring3.0中的一个新功能;能接受请求路径中占位符的值,获取url中的数据

  • @RestControllerAdvice注解和@ControllerAdvice的注解区别:

  • 注解有@ControllerAdvice的类,需要在具体方法上同时添加@ExceptionHandler和@ResponseBody注解;

  • 注解有@RestControllerAdvice的类,只需要在具体方法上添加@ExceptionHandler注解;

  • ExceptionHandler注解用来捕获并统一处理,减少代码重复率和复杂度

  • Resource和@Autowired注解都是用来实现依赖注入的

区别:

  • Autowired注解是按by type自动注入;

  • Resource注解默认按byName自动注入

  • Resource注解有两个重要属性,分别是name和type

  • RequestBody和@RequestParam的区别:

  • RequestBody可以将body里面所有的json数据传入后端,后端进行解析;

  • RequestBody一般用户处理application/json、application/xml等类型的数据;

  • RequestBody不适用于GET请求,原因:GET请求中没有HttpEntity

  • RequestParam注解接受的参数是来自Http请求或url请求

  • RequestParam注解可以接受简单类型属性,也可以接收对象类型

  • RequestParam注解通常用来处理Content-Type为application/x-www-form-urlencoded编码的内容(这里指form表单数据)

  • RequestParam注解无法读取json格式数据**

Contnet-Type总结:

**form表单请求数据类型(application/x-www-form-urlencoded),不可以用@RequestBody注解;可以使用@RequestParam注解

application/json:json字符串用@RequestBody注解

@Compent注解把普通pojo实体类实例化到Spring容器中

@MapperScan注解:递归扫描,比如扫描com.zy下的mapper包,例如:MapperScan(“com.zy.Mapper”)

@Entity:表明该类是一个实体类

@Table:当实体类与映射数据库表名不同时,需要使用比如:@Table(name=“user_home”,shema=“test”)

@SpringBootTest:表名这个类是测试类

@Runwith:运行测试类,相当于运行器

@EnableCaching注解:是Springframework中注解驱动的缓存管理功能

@Controller和@RestController区别:

在对应的方法上,视图解析器可以解析return的JSP、HTML页面并且跳转到相对应的页面使用@Controller注解

若返回json字符串内容到页面,则需要加@RestController注解

你可能感兴趣的:(java,spring,spring,boot,mybatis,vue)