Spring Boot
文章平均质量分 77
吴声子夜歌
个人学习记录
展开
-
SpringBoot——全局异常处理
2、4两种通过组合的方式进行异常处理需要考虑到的问题:对于一个请求,如果两个地方都捕捉到了异常,要考虑两次异常处对response响应信息的重复写入问题。比如:异常处理器处理了控制器抛出的异常,写入响应;过滤器处理了过滤器抛出的异常,写入响应。这就会出现响应被写入了两次的问题或者第二次写入响应直接报错。一些处理思路:考虑使用Response代理类。第一次处理时,异常处理器写入的响应信息是写入到Response代理对象的,并可以从Response代理类中得到写入的响应信息;原创 2023-11-03 23:53:45 · 517 阅读 · 0 评论 -
SpringBoot——集成WebSocket
对于WebSocket的使用,可以先通过Spring创建Java配置文件。//创建服务器端点 @Bean public ServerEndpointExporter serverEndpointExporter() {} }有了这个Bean,就可以使用@ServerEndpoint定义一个端点服务类。//静态变量,用来记录当前在线连接数。应该设计为线程安全的 private static int onlineCount = 0;原创 2023-07-29 23:35:07 · 1434 阅读 · 1 评论 -
SpringBoot——整合MongoDB详解
【代码】SpringBoot——整合MongoDB详解。原创 2023-05-09 13:55:02 · 6381 阅读 · 0 评论 -
SpringBoot--数据校验(普通校验、分组校验)
普通校验普通检验是基础用法,非常容易,首先需要用户在SpringBootWeb项目中添加数据校验相关的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-valid...原创 2020-02-07 15:52:02 · 3269 阅读 · 0 评论 -
SpringBoot--邮件发送(简单邮件、带附件邮件、带图片资源的邮件、使用邮件模板)
邮件发送Spring中提供了JavaMailSender用来简化邮件配置,SpringBoot则提供了MailSenderAutoConfiguration对邮件的发送做了进一步简化。发送前的准备首先要申请开通POP3/SMTP服务或者IMAP/SMTP服务。SMTP全程为Simple Mail Transfer Protocol,译作简单邮件传输协议,它定义了邮件客户端与SMTP服务器之间...原创 2020-02-07 14:05:36 · 3301 阅读 · 0 评论 -
SpringBoot--异步任务、定时任务、@Scheduled参数详解
异步任务异步任务场景非常常见,比如我们发送邮件或者处理数据时,不希望阻塞线程,影响用户体验,所以就需要异步任务。模拟上述场景:@RestControllerpublic class AsynController { @Autowired AsyncService asyncService; @GetMapping("/hello") public Str...原创 2020-02-07 00:13:45 · 1187 阅读 · 1 评论 -
SpringBoot--整合ActiveMQ
1. 创建项目,添加ActiveMQ依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> <...原创 2020-02-06 10:45:37 · 169 阅读 · 0 评论 -
SpringBoot--Ehcache缓存
1. 创建项目,添加缓存依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>...原创 2020-02-06 10:05:22 · 368 阅读 · 0 评论 -
SpringBoot--配置Redis单机缓存
Redis单机缓存如果在classpath下存在Redis并且Redis已经配置好了,此时默认就会使用RedisCacheManager作为缓存提供者。1. 创建项目,添加缓存依赖: <dependencies> <dependency> <groupId>org.springframework.boot</g...原创 2020-02-05 23:58:27 · 687 阅读 · 0 评论 -
SpringBoot--缓存详解
JSR107Java Caching定义了5个核心接口,分别时CachingProvider,CacheManager,Cache,Entry和Expiry。CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。CacheManager定义了创建、配置、获取、管理和控制多个唯一命名的Cach...原创 2020-02-05 21:40:51 · 1042 阅读 · 0 评论 -
SpringBoot--构建RESTful服务详解
REST简介REST(Representational State Transfer)是一种Web软件架构风格,它是一种风格,而不是标准,匹配或兼容这种架构风格的网络服务称为REST服务。REST服务简洁并且有层次,REST通常基于HTTP、URI和XML以及HTML这些现有的广泛流行的协议和标准。在REST中,资源是由URI来指定的,对资源的增删改查操作可以通过HTTP协议提供的GET、PO...原创 2020-02-05 12:26:24 · 988 阅读 · 0 评论 -
SpringBoot--整合Redis
整合RedisRedis的Java客户端有很多,例如Jedis、JRdis、Spring Data Redis等,SpringBoot借助于Spring Data Redis为Redis提供了开箱即用自动化配置,开发者只需要添加相关依赖并配置Redis连接信息即可,具体步骤如下:1. 创建SpringBoot Web项目,添加如下依赖: <dependency> ...原创 2020-02-04 22:03:50 · 1296 阅读 · 0 评论 -
SpringBoot--配置CORS跨域支持
CORSCORS(Cross-Origin Resource Sharing)是由W3C指定的一种跨域资源共享技术标准,其目的为了解决前端的跨域请求。在JavaEE开发中,最常见的前端跨域请求解决方案是JSONP,但是JSONP只支持GET请求,这是一个很大的缺陷,而CORS则支持多种HTTP请求方法。以CORS中的GET请求为例,当浏览器发起请求时,请求头中携带了如下信息:.........原创 2020-02-04 14:31:45 · 372 阅读 · 0 评论 -
SpringBoot--整合Druid&配置数据源监控
整合Druid引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.9</version> ...原创 2019-12-19 17:46:36 · 233 阅读 · 0 评论 -
SpringBoot--整合JDBC
SpringBoot–JDBC引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <depend...原创 2019-12-19 17:45:50 · 150 阅读 · 0 评论 -
SpringBoot--整合JPA
SpringBoot整合JPA创建工程并导入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi...原创 2019-12-18 23:04:55 · 441 阅读 · 1 评论 -
SpringBoot--启动流程、原理
SpringBoot启动流程1、创建SpringApplication对象initialize(sources);private void initialize(Object[] sources) { //保存主配置类 if (sources != null && sources.length > 0) { this.sources.ad...原创 2019-12-18 18:09:49 · 170 阅读 · 0 评论 -
SpringBoot--整合MyBatis(注解方式)
整合MyBatis(注解方式)Users表结构CREATE TABLE `users` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', `username` varchar(32) DEFAULT NULL COMMENT '用户名', `password` varchar(32) DEFAULT NULL COM...原创 2019-12-17 15:24:37 · 248 阅读 · 0 评论 -
SpringBoot--整合MyBatis(XML方式)
整合MyBatis(XML方式)1. 添加MySQL 连接驱动依赖、SpringBoot Mybatis 依赖完整pom.xml文件如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/...原创 2019-12-17 15:24:09 · 249 阅读 · 0 评论 -
SpringBoot--整合JDBC实例
整合JDBCJdbcTemplate是Spring提供的一套JDBC模板框架,利用AOP技术来解决直接使用JDBC时大量重复代码的问题。JdbcTemplate虽然没有MyBatis那么灵活,但是比直接使用JDBC要方便很多。SpringBoot中对JdbcTemplate的使用提供了自动化配置类JdbcTemplateAutoConfiguration,部分源码如下:@Configurati...原创 2019-12-16 15:14:40 · 274 阅读 · 0 评论 -
SpringBoot--整合Servlet、Filter与Listener与路径映射问题
整合Servlet、Filter与Listener添加三大组件:@WebServlet("/test")public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Serv...原创 2019-12-16 15:14:21 · 347 阅读 · 0 评论 -
SpringBoot--引入和使用其它Servlet容器配置(Jetty、Undertow)
SpringBoot对Servlet容器的支持Tomcat(默认使用)<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> 引入web模块默认就是使用嵌入式的...原创 2019-12-14 13:36:57 · 500 阅读 · 0 评论 -
SpringBoot--嵌入式Servlet容器自动配置原理
嵌入式Servlet容器自动配置原理EmbeddedServletContainerAutoConfiguration:嵌入式的Servlet容器自动配置?@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)@Configuration@ConditionalOnWebApplication@Import(BeanPostProcessorsRe...原创 2019-12-14 13:34:44 · 194 阅读 · 0 评论 -
SpringBoot--嵌入式Servlet容器启动原理
嵌入式Servlet容器启动原理什么时候创建嵌入式的Servlet容器工厂?什么时候获取嵌入式的Servlet容器并启动Tomcat;获取嵌入式的Servlet容器工厂:1)、SpringBoot应用启动运行run方法2)、refreshContext(context);SpringBoot刷新IOC容器【创建IOC容器对象,并初始化容器,创建容器中的每一个组件】;如果是web应用创建An...原创 2019-12-14 13:35:37 · 192 阅读 · 0 评论 -
SpringBoot--配置嵌入式Servlet容器、注册三大组件
配置嵌入式Servlet容器SpringBoot默认使用Tomcat作为嵌入式的Servlet容器;定制和修改Servlet容器的相关配置修改和server有关的配置(ServerProperties【也是EmbeddedServletContainerCustomizer】);server.port=8081server.context-path=/crudserver.to...原创 2019-12-13 15:45:23 · 232 阅读 · 0 评论 -
SpringBoot--自定义错误页面、数据
简单配置第一种情况:不使用模板如果不需要向用户展示详细的错误信息,那么可以把错误信息定义成静态页面,直接在resources/static目录下创建error目录,然后在error目录中创建错误展示页面。错误展示页面的规则有两种:4xx.html、5xx.html直接使用相应码命名文件,例如404.html、500.html第二种情况:使用模板如果要使用HTML模板,以Thyme...原创 2019-12-13 15:44:24 · 659 阅读 · 0 评论 -
SpringBoot--错误处理机制
SpringBoot–错误处理机制默认效果:浏览器,返回一个默认的错误页面浏览器发送请求的请求头:如果是其他客户端,默认响应一个json数据原理: 可以参照ErrorMvcAutoConfiguration;错误处理的自动配置;给容器中添加了以下组件 1、DefaultErrorAttributes:帮我们在页面共享信息;@Override public...原创 2019-12-13 15:43:08 · 244 阅读 · 0 评论 -
SpringBoot--thymeleaf公共页面元素抽取、传递参数
thymeleaf公共页面元素抽取1、抽取公共片段<div th:fragment="copy">© 2011 The Good Thymes Virtual Grocery</div>2、引入公共片段<div th:insert="~{footer :: copy}"></div>~{templatename::s...原创 2019-12-11 17:59:23 · 1769 阅读 · 0 评论 -
SpringBoot--文件上传并回显
SpringBoot文件上传SpringMVC对文件上传做了简化,在SpringBoot中对此做了更进一步的简化,文件上传更加方便。Java中的文件上传一共涉及两个组件,一个是CommonsMultipartResolver,另一个是StandardServletMultipartResolver,其中CommonsMultipartResolver使用commons-fileupload来处...原创 2019-12-11 11:42:50 · 1186 阅读 · 0 评论 -
SpringBoot--国际化
2)、国际化1)、编写国际化配置文件;**2)、使用ResourceBundleMessageSource管理国际化资源文件3)、在页面使用fmt:message取出国际化内容步骤:1)、编写国际化配置文件,抽取页面需要显示的国际化消息2)、SpringBoot自动配置好了管理国际化资源文件的组件;@ConfigurationProperties(prefix = "sprin...原创 2019-12-10 13:04:10 · 193 阅读 · 0 评论 -
SpringBoot--SpringMVC自动配置原理、自定义配置
4、SpringMVC自动配置https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications1. Spring MVC auto-configurationSpring Boot 自动配置好了SpringMVC以下是S...原创 2019-11-26 13:14:25 · 397 阅读 · 0 评论 -
SpringBoot--模板引擎Thymeleaf、使用&语法
3、模板引擎JSP、Velocity、Freemarker、ThymeleafSpringBoot推荐的Thymeleaf;语法更简单,功能更强大;1、引入thymeleaf; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin...原创 2019-11-25 10:31:56 · 415 阅读 · 0 评论 -
SpringBoot--静态资源的映射规则
静态资源的映射规则@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)public class ResourceProperties implements ResourceLoaderAware { //可以设置和静态资源有关的参数,缓存时间等 WebMvcAuotConfi...原创 2019-11-25 10:31:27 · 278 阅读 · 0 评论 -
SpringBoot--日志框架、SLF4j使用原理、统一日志、SpringBoot日志关系、切换日志框架
日志框架市面上的日志框架;JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j…日志门面 (日志的抽象层)日志实现JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-loggingLog4j JUL(java.ut...原创 2019-11-25 10:30:44 · 364 阅读 · 0 评论 -
SpringBoot--@Conditional派生注解、打印自动配置报告
1、@Conditional派生注解(Spring注解版原生的@Conditional作用)作用:必须是@Conditional指定的条件成立,才给容器中添加组件,配置配里面的所有内容才生效;@Conditional扩展注解作用(判断是否满足当前指定条件)@ConditionalOnJava系统的java版本是否符合要求@ConditionalOnBean容器中存...原创 2019-11-25 10:29:59 · 610 阅读 · 0 评论 -
SpringBoot--配置文件占位符、Profile、配置文件位置及加载顺序、常用外部配置加载顺序
配置文件占位符1. 可以使用随机数${random.value}、${random.int}、${random.long}${random.int(10)}、${random.int[1024,65536]}2. 占位符获取之前配置的值,如果没有可以是用:指定默认值person.last-name=张三${random.uuid}person.age=${random.int}pe...原创 2019-11-24 21:51:52 · 918 阅读 · 0 评论 -
SpringBoot--自动配置原理
配置文件可以配置的属性配置文件到底能写什么?怎么写?自动配置原理;配置文件能配置的属性参照自动配置原理1)、SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration2)、@EnableAutoConfiguration 作用:利用EnableAutoConfigurationImportSelector给容器中导入一些组件?...原创 2019-11-24 15:56:27 · 257 阅读 · 0 评论 -
SpringBoot--@PropertySource&@ImportResource&@Bean
@PropertySource作用:加载指定的配置文件@Component//@ConfigurationProperties(prefix = "person")@PropertySource(value = {"classpath:person.properties"})//支持数组形式,一次加载多个配置文件public class Person { @Value("${pe...原创 2019-11-24 15:54:52 · 281 阅读 · 0 评论 -
SpringBoot--properties配置、@Valuehe @ConfigurationProperties对比、配置文件注入值数据校验
properties配置示例:#idea的properties配置文件默认为utf-8编码person.last-name=张三person.age=18person.birth=2017/12/15person.boss=falseperson.map.k1=v1person.map.k2=14person.lists=a,b,cperson.dog.name=dogper...原创 2019-11-23 19:23:13 · 523 阅读 · 0 评论 -
SpringBoot--YAML配置
YAMLYAML是JSON的超集,简介而强大,是一种专门用来书写配置文件的语言,可以替代application.properties。在创建一个Spring Boot项目时,引入的spring-boot-starter-web依赖间接地引入了snakeyaml依赖,snakeyaml会实现对YAML配置的解析。YAML的使用非常简单,利用缩进来表示层级关系,并且大小写敏感。在Spring Bo...原创 2019-11-23 19:22:47 · 532 阅读 · 0 评论