
Spring Boot自学系列
Spring Boot自学系列
一朵风中摇曳的水仙花
世人多愿锦上添花,却少有人雪中送炭
展开
-
SpringBoot使用@Async异步调用方法
有时间一些比较耗时的方法需要使用异步调用,之前会自己维护一个线程池,然后异步调用,但是在Spring环境下可以一个@Async轻松搞定。SpringBoot要使用@Async需要以下两个步骤:1.使用@EnableAsync开启异步;2.定义Spring组件,使用@Component和@Async;示例:使用@EnableAsync开启异步:定义Spring组件,使用@Component和@Async:测试用的Controller:启动项目,执行结果:异步转载 2020-07-23 12:18:00 · 460 阅读 · 0 评论 -
SpringBoot系列——@Async优雅的异步调用
前言 众所周知,java的代码是同步顺序执行,当我们需要执行异步操作时我们需要创建一个新线程去执行,以往我们是这样操作的: /** * 任务类 */ class Task implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName() + ":异步任务");转载 2020-07-23 12:17:52 · 1279 阅读 · 0 评论 -
Spring Boot中@Async的作用
在Spring中,@Async这个注解用于标记的异步的方法。方法上一旦标记了这个方法,当其它线程调用这个方法时,就会开启一个新的线程去异步处理业务逻辑。此注解的使用说明: 1、此注解可以用在方法上,也可以用在类上(如果用在类上,这个类中的所有的方法就是异步的) 2、使用此注解的方法的类对象,需要是spring管理下的bean对象 3、程序主类或此注解的主类上,需要开启启用异步配置,配置上@EnableAsync注解 以Spring b...转载 2020-07-23 12:17:45 · 902 阅读 · 0 评论 -
SpringBoot使用@Async总结
注意事项:如下方式会使@Async失效一、异步方法使用static修饰二、异步类没有使用@Component注解(或其他注解)导致spring无法扫描到异步类三、异步方法不能与异步方法在同一个类中四、类中需要使用@Autowired或@Resource等注解自动注入,不能自己手动new对象五、如果使用SpringBoot框架必须在启动类中增加@EnableAsync注解六、在Async 方法上标注@Transactional是没用的。在Async 方法调用的方法上标注@Transactio.转载 2020-07-21 15:10:34 · 245 阅读 · 0 评论 -
springboot配置多数据源并配置事务
目录1.springboot配置多数据源2.配置多数据源的事务1.springboot配置多数据源1、配置文件读取的java配置spring:datasource: member: #springboot2 多数据源读取名称存在bug,使用jdbc-url替代url url: jdbc:mysql://localhost:3306/member username: root password: 123456 borr原创 2020-07-07 18:47:49 · 1597 阅读 · 1 评论 -
springboot返回内容特殊符号处理
需求说明根据需求部分字段内容为正则表达式,包含特殊符号’<’,’>等,导致html解析错误,字段显示错误或显示部分。对特殊字段需要过滤,如:用户密码等不应该返回到前端。解决方案可以在单个方法中对数据进行处理,但是这样会增加代码复杂度,具有侵入性使用切面思想,对返回json进行统一处理代码1.创建注解package com.pactera.ai.manage.commons.annotation;import java.lang.annotation.El转载 2020-07-06 09:07:45 · 3268 阅读 · 0 评论 -
如何在Thymeleaf中构造ajax请求的url(SpringBoot+Thymeleaf拼接URL,字符和请求参数参数变化)
1.在ajax请求的时候拼接basePath ,可以将basePath 设置成全局变量,或者设置成ajax请求从后台获取定义在yaml文件中的basePath 的值。<script type="text/javascript" th:inline="javascript"> /*<![CDATA[*/ var basePath = /*[[${#httpServletRequest.getScheme() + "://" + #httpServle转载 2020-07-04 16:25:12 · 2793 阅读 · 0 评论 -
springboot获取properties文件的配置内容(转载)
1、使用@Value注解读取读取properties配置文件时,默认读取的是application.properties。application.properties:demo.name=Namedemo.age=18Java代码:import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;imp.转载 2020-07-04 16:15:29 · 1407 阅读 · 0 评论 -
springboot定时任务自学之路-03(异步多线程定时任务)
默认是单线程的定时任务,如果任务持续时间比较长,就会将后续定时任务拖延,导致丢失任务。所以这时候就需要开启异步多线程的定时任务。分为两步:1.开启异步@EnableAsync2.将定时方法设置为异步执行@Async上代码:package com.test.springboot_schedule;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfig原创 2020-06-26 22:40:25 · 212 阅读 · 0 评论 -
springboot定时任务自学之路-02(使用cron表达式完成复杂的定时任务)
目录1.应用代码2.cron表达式简单介绍1.应用代码package com.test.springboot_schedule;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.scheduling.annotation.EnableSchedu原创 2020-06-26 22:33:02 · 525 阅读 · 0 评论 -
springboot定时任务自学之路-01(开启第一个定时)
目录1.创建一个springboot的空项目2.添加开启定时任务的注解@EnableScheduling3.添加定时任务的注解@Scheduled1.创建一个springboot的空项目详情见我之前的博客,此处不再赘述。2.添加开启定时任务的注解@EnableScheduling在启动类上面加上注解@EnableScheduling3.添加定时任务的注解@ScheduledfixedRate 表示定时任务的执行频率,单位毫秒 。所以 30*1000表示.原创 2020-06-26 22:16:23 · 172 阅读 · 0 评论 -
springboot自学之路-20(springboot集成redis)
目录1.引入依赖2.配置RedisConfig3.编写service4.编写controller1.引入依赖<?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:schemaLocation="http:原创 2020-06-14 15:47:35 · 479 阅读 · 0 评论 -
springboot自学之路-19(springboot集成jsp)
目录1.引入依赖2.配置资源文件夹3.配置视图解析的前缀与后缀4.新建jsp文件5.编写控制器1.引入依赖与资源解析配置<?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:schemaLocation=原创 2020-06-07 16:45:59 · 191 阅读 · 0 评论 -
springboot自学之路-18(springboot注册拦截器)
一、定义拦截器 MyIntercepterpackage com.example._09intercepter;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest;import javax.ser...原创 2020-05-05 19:36:21 · 217 阅读 · 0 评论 -
springboot自学之路-17(springboot文件上传)
一、定义文件上传的页面html(在resources/static下新建fileUpload.html)<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>文件上传</title></head>&l...原创 2020-05-05 18:57:47 · 202 阅读 · 0 评论 -
springboot自学之路-16(springboot注册servlet组件)
springboot注册servlet组件有2种方式:目录1.通过注解直接注册2.通过组件注册器进行注册1.通过注解直接注册一、启动类添加 @ServletComponentScan 可以扫描到servlet组件package com.example._06servlet;import org.springframework.boot.SpringApplicatio...原创 2020-05-05 18:03:16 · 264 阅读 · 0 评论 -
springboot自学之路-15(springboot统一异常处理)
目录1.方式一:使用springboot默认的异常处理页面2.方式二:自定义异常处理方法一、引入依赖二、在resources/public/目录下创建error文件夹。并创建5xx.html1.方式一:使用springboot默认的异常处理页面一、引入依赖<!--引入freemarker begin--> <dependency>...原创 2020-05-04 23:02:55 · 224 阅读 · 0 评论 -
springboot自学之路-14(springboot集成freemarker)
一、引入依赖 <!--引入freemarker begin--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker<...原创 2020-05-04 22:17:48 · 220 阅读 · 0 评论 -
springboot自学之路-13(springboot静态资源处理)
静态资源:1.默认情况下,springboot会从classpath下的 /META-INF.resources/,/static/,/resources/,/public/ 下面加载静态资源;2.可以通过修改 spring.resources.static-locations 来修改静态资源加载的地址:spring.resources.static-locations=class...原创 2020-05-04 19:03:27 · 174 阅读 · 0 评论 -
springboot自学之路-12(springboot核心自动装配原理)
自动配置原理1).SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration2).@EnableAutoConfiguration作用:利用EnableAutoConfigurationImporttSelector给容器中导入一些组件; 可以插件selectImports()方法的内容; List<String> c...转载 2020-05-04 18:36:07 · 405 阅读 · 0 评论 -
springboot自学之路-11(springboot集成事务)
在上篇文章https://blog.youkuaiyun.com/u012045045/article/details/105897047的基础上继续。有2种方法:目录1.在service实现类上添加@Transactional2.使用xml配置1.在service实现类上添加@Transactional一、在service实现类上添加@Transactionalpackage...原创 2020-05-03 17:00:28 · 294 阅读 · 0 评论 -
springboot自学之路-10(springboot连接mybatis)
一、引入依赖 <!--springboot集成mybatis begin--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starte...原创 2020-05-02 23:10:19 · 194 阅读 · 0 评论 -
springboot自学之路-09(springboot连接datasource)
一、添加依赖 <!--jdbc数据库连接 begin--> <!--① 添加druid依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-bo...原创 2020-05-02 16:57:35 · 471 阅读 · 0 评论 -
springboot自学之路-08(springboot的热部署)spring-boot-devtools
除了可以使用jrebel来实现热部署,还可以使用spring-boot的spring-boot-devtools来实现热部署。1.在pom文件中引入依赖<!--springboot 的热部署工具 begin--> <dependency> <groupId>org.springframework.boot</groupId> ...原创 2020-05-02 10:54:51 · 194 阅读 · 0 评论 -
springboot自学之路-07(springboot的参数绑定)@ConfigurationProperties
springboot的参数绑定,先介绍一种常用方式:@ConfigurationProperties应用场景有2种,一种是在自己建的类上使用,一种是在第三方组件上使用。下面分别介绍:目录一、在自己建的类上使用二、在第三方组件上使用一、在自己建的类上使用(1)新建类:package com.example._02configuration;import lom...原创 2020-05-01 22:02:10 · 235 阅读 · 0 评论 -
springboot自学之路-06(springboot的banner设置)
springboot的banner设置有2种方式:目录一、通过在resources文件夹下新建banner.txt来设置二、通过代码:application.setBanner(new Banner() 设置一、通过在resources文件夹下新建banner.txt来设置在resources文件夹下新建banner.txt文件。内容如下:${AnsiColor.BRIG...原创 2020-05-01 18:16:52 · 681 阅读 · 1 评论 -
springboot自学之路-05(springboot的参数设置)
获取到外界给应用传递的参数的方法(优先级从高到低):1.命令行参数;2.servletConfig和servletContext3.操作系统环境变量4.application-{profile}.Properties或者yaml文件5.application.Properties或者yaml文件。一、通过 ApplicationArguments可以获取到外界给应用传递的参数...原创 2020-05-01 17:47:32 · 293 阅读 · 0 评论 -
springboot自学之路-04(springboot的helloword独立运行)
springboot的helloword独立运行的方式有3种:目录一、直接运行SpringApplication.run(ApplicationConfig.class, args);所在的启动类运行二、运行spring-boot-maven-plugin 插件运行三、将项目打成jar在命令行里面运行一、直接运行SpringApplication.run(Application...原创 2020-05-01 17:06:18 · 219 阅读 · 0 评论 -
springboot自学之路-03(springboot项目结构分析)
大家比较好奇为什么引入springboot为parent之后,引入web依赖为什么不用再写版本号了。而且引入web依赖后与之相关的日志的依赖啦以及其他依赖也被一并引入了,这是为什么呢?其实主要是运用了pom文件依赖的继承传播性。我们先从一个比较经典的案例说起吧。比如我们需要创建一个用户申卡系统,那我们为了方便管理选择前后台分离,后台专门从数据库获取数据,对前台项目暴露API接口,使其从之获...原创 2020-05-01 16:45:09 · 271 阅读 · 0 评论 -
springboot自学之路-02(创建springboot项目的三种方式)
新手入门,讲解一下创建springboot项目的三种方式。目录方式一:通过idea自带的spring initlalizr创建方式二:通过https://start.spring.io/初始化创建(需联网)方式三:自行创建方式一:通过idea自带的spring initlalizr创建打开idea,file->new->project->spring in...原创 2020-05-01 16:13:18 · 452 阅读 · 0 评论 -
springboot自学之路-01(springboot简介)
最近因为新项目的框架是springboot框架的,所以下班后需要自学一下。做此笔记,已备回顾。springboot 是快速开发框架,整合了第三方常用的框架。基于注解开发,让开发者免于各种XML文件配置之苦的框架。...原创 2020-05-01 15:41:48 · 266 阅读 · 0 评论