para培训——SpringBoot学习(一)

SpringBoot

Spring概述

  • 轻量级
  • IOC控制反转、DI依赖注入
  • AOP面向切面编程

配置

application.yml
application.properties

热部署

我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间。

注解

  • @SpringBootApplication是个组合注解(composed annotation),用它就相当于同时用了下面三个注解:

@SpringBootConfiguration : 用于定义一个配置类
@EnableAutoConfiguration :Spring Boot 会自动根据你jar 包的依赖来自动配置
@ComponentScan: 告诉Spring 哪个packages 的用注解标识的类会被spring自动扫描并且装入bean 容器。

  • @EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。
  • @RestController是@ResponseBody和@Controller的缩写

统一错误处理

全局异常处理 @ControllerAdvice + @ExceptionHandler

在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。
简单的说,进入Controller层的错误才会由@ControllerAdvice处理,拦截器抛出的错误以及访问错误地址的情况@ControllerAdvice处理不了,由SpringBoot默认的异常处理机制处理。

相关链接:https://mp.weixin.qq.com/s?src=11&timestamp=1574824755&ver=1999&signature=PwNpIG4EyQbatDHRb78tyEdfIWNt-A03uPm0m9u5RAsaVOKPO2YpPmCy-ajbxMEmbvUgXM4cZxudCqsx0fFlwbdkLEfkt3s5vkjOZ5EQbgGvtFq6pGCQ6vwaSMfEFY&new=1

整合测试

使用spring-boot-starter-test这个包即可完成测试
链接:https://blog.csdn.net/zy345293721/article/details/90520273

日志管理

logback

静态资源

静态资源是哪些呢?
首页
自己的HTML,CSS和JS文件
引用的外部的CSS,JS或者HTML文件
favicon.ico
模板文件
关键静态文件的配置,主要封装在下面两个类中:
org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration
org.springframework.boot.autoconfigure.web.ResourceProperties
Spring Boot约定的静态文件的路径就是类路径下的这几个

  1. classpath:/META-INF/resources/
  2. classpath:/resources/
  3. classpath:/static/
  4. classpath:/public/

自定义消息转换器

自定义消息转换器
 自定义消息换换器,我们只需要在配置类@Configuration的类中添加消息转换器的@Bean加入spring容器,就会被SpringBoot自动加入到容器中。
例如:

@Bean
public StringHttpMessageConverter stringHttpMessageConverter(){
    StringHttpMessageConverter converter = new StringHttpMessageConverter(
                Charset.forName("UTF-8"));
    return converter;
}

自定义拦截器

配置拦截器也很简单,Spring 为什么提供了基础类WebMvcConfigurerAdapter ,我们只需要重写 addInterceptors 方法添加注册拦截器。
实现自定义拦截器只需要3步:
1、创建我们自己的拦截器类并实现 HandlerInterceptor 接口。
2、创建一个Java类继承WebMvcConfigurerAdapter,并重写 addInterceptors 方法。
3、实例化我们自定义的拦截器,然后将对像手动添加到拦截器链中(在addInterceptors方法中添加)

public class MyInterceptor1 implements HandlerInterceptor {
 
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        System.out.println(">>>MyInterceptor1>>>>>>>在请求处理之前进行调用(Controller方法调用之前)");
 
        return true;// 只有返回true才会继续向下执行,返回false取消当前请求
    }
 
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        System.out.println(">>>MyInterceptor1>>>>>>>请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)");
    }
 
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        System.out.println(">>>MyInterceptor1>>>>>>>在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作)");
    }
 

全局异常处理

创建基于 @RestControllerAdvice 全局异常类示例
@RestControllerAdvice 注解是 Spring Boot 用于捕获 @Controller 和 @RestController 层系统抛出的异常(注意,如果已经编写了 try-catch 且在 catch 模块中没有使用 throw 抛出异常, 则 @RestControllerAdvice 捕获不到异常)。
@ExceptionHandler 注解用于指定方法处理的 Exception 的类型
链接:https://www.cnblogs.com/fishpro/p/11179688.html

整合JSP

链接:https://mp.weixin.qq.com/s?src=11&timestamp=1574826150&ver=1999&signature=gPoaGZWU6g946YGVZguHcffBP8qKXO6RLZtdA83DjdvJAV2BZuIhZdOyomEGClH1hLDBhWNecw0D6vfZYLAYy3t5WoTZv-CPz1VZ2ySEjisJ9TL1pj*ikbpTuMextO&new=1

整合QuartZ

一、Quartz简介:
a. Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。
b. Quartz 可以与 J2EE 与 J2SE 应用程序相结合也可以单独使用。
c. Quartz 允许程序开发人员根据时间的间隔来调度作业。
d. Quartz 实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。

二、Quartz 核心概念
1、Job
表示一个工作,要执行的具体内容。此接口中只有一个方法,如下:void execute(JobExecutionContext context)
2、JobDetail
表示一个具体的可执行的调度程序,Job 是这个可执行程调度程序所要执行的内容,另外 JobDetail 还包含了这个任务调度的方案和策略。
3、Trigger
代表一个调度参数的配置,什么时候去调。
4、Scheduler
代表一个调度容器,一个调度容器中可以注册多个 JobDetail 和 Trigger。当 Trigger 与 JobDetail 组合,就可以被 Scheduler 容器调度了。
连接:https://mp.weixin.qq.com/s?src=11&timestamp=1574826191&ver=1999&signature=H62trH9WokmrtCeSK-j1ieSBMZTv5TuGByEqYS1XDC0037ghVKTKqbVb1oimZcW4QTcQBzZly2zYoD6WNn6cNnTMfviM40kz5d4D1el1o*haJeY-0cIU962LBO2V9S&new=1

整合JPA-Hibernate

https://mp.weixin.qq.com/s?src=11&timestamp=1574826244&ver=1999&signature=YDJUxTCpMElKCKgxcR5g0t0htf6dsf4fSWPXQyk-LK1Mk20f6wu2fuBhcUiOTrZU1PGZ90fFSgMNF9IbVTJiuSaVYoylnaE3EZmiGGwqqiVpWC-IKeLoq5lxBX9R1x&new=1

文件上传

https://mp.weixin.qq.com/s?src=11&timestamp=1574826268&ver=1999&signature=gUaat1p*hH5nNQCBkUdZsekBAZV2C2oxU6lWhlOfuGtF8N08tu836Sm3Z60IlLdPXncurcpEUylgwm8Jm6yz1RSWkqzeSDNdI1KHFh435WADs3UtSCfRb26OaHJueu&new=1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章