SpringBoot
文章平均质量分 70
SpringBoot
这个作者很懒,什么都没留下…
展开
-
SpringBoot四十四:整合EasyCaptcha(图形验证码)
EasyCaptcha简介Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。效果展示算术类型:中文类型:内置字体:maven方式引入<dependencies> <dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</a原创 2021-06-11 09:47:34 · 1972 阅读 · 0 评论 -
SpringBoot四十三:使用脚本命令启动程序
启动应用脚本:startup.shnohup java -jar test-1.0.jar > nohup.out 2>&1 &停止应用脚本:stop.shPID=$(ps -ef | grep test-1.0.jar | grep -v grep | awk '{ print $2 }')if [ -z "$PID" ]thenecho Application is already stoppedelseecho kill -9 $PIDkill -9 $原创 2021-06-10 15:31:15 · 184 阅读 · 0 评论 -
SpringBoot四十二:Https
https 现在已经越来越普及了,特别是做一些小程序或者公众号开发的时候,https 基本上都是刚需了。 不过一个 https 证书还是挺费钱的,个人开发者可以在各个云服务提供商那里申请一个免费的证书。我印象中有效期一年,可以申请 20 个。 今天要和大家聊的是在 Spring Boot 项目中,如何开启 https 配置,为我们的接口保驾护航。https 简介我们先来看看什么是 https,根据 wikipedia 上的介绍:超文本传输安全协议(HyperText Transfer .原创 2021-06-07 23:27:19 · 271 阅读 · 0 评论 -
SpringBoot四十一:防止重复提交
前言在传统的web项目中,为了防止重复提交,通常做法是:后端生成唯一的提交令牌(token),存储在服务端,页面在发起请求时,携带次令牌,后端验证请求后删除令牌,保证请求的唯一性。但是,上诉的做法是需要前后端都需要进行改动,如果在项目初期,是可以实现的,但是,在项目的后期,很多功能都实现好了,不可能大范围的去改动。思路自定义注解@NoRepeatSubmit 标记所有Controller中提交的请求通过AOP对所有标记了@NoRepeatSubmit 的方法进行拦截在业务方法执行前,获取当前用原创 2021-04-23 17:38:39 · 1103 阅读 · 0 评论 -
SpringBoot四十:jackson全局格式化日期
时间格式化在项目中使用频率是非常高的,当我们的 API 接口返回结果,需要对其中某一个 date 字段属性进行特殊的格式化处理,通常会用到 SimpleDateFormat 工具处理。SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Date stationTime = dateFormat.parse(dateFormat.format(PayEndTime()));可一旦处理的地方较多,不仅 CV 操作频繁,还产生很原创 2021-03-23 11:19:15 · 3452 阅读 · 0 评论 -
SpringBoot三十九:CORS解决跨域问题
Spring提供的注解支持CrossOrigin 可以标识在类或者方法上@RestController@RequestMapping("/")public class CorsController { @GetMapping @CrossOrigin( origins = {"http://localhost"}, // 允许哪些域名来跨域来请求当前资源,可以使用通配符 * allowedHeaders = {"javakf"}, // 允许客户端请求携带的请求头 exp原创 2021-03-09 10:33:56 · 343 阅读 · 0 评论 -
SpringBoot三十八:整合Mybatis-Plus
使用SpringBoot将进一步的简化MP的整合:SpringBoot + Mybatis + Mybatis-Pluspom.xml<properties> <mysql.version>5.1.47</mysql.version></properties><dependencies> <dependency> <groupId>org.springframework.boot</groupId&g原创 2020-07-10 17:09:33 · 334 阅读 · 0 评论 -
SpringBoot三十七:整合阿里云OSS
什么是对象存储OSS阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准原创 2020-07-03 16:41:33 · 541 阅读 · 0 评论 -
SpringBoot三十六:整合MinIo文件服务
什么是MinIoMinio是Apcche旗下的一款开源的轻量级文件服务器,基于对象存储,协议是基于Apache License v2.0,开源可用于商务。Minio主要用来存储非结构化的数据,类似文件,图片,照片,日志文件,各类备份文件等,按照官网描述,文件的大小从几KB到5TB。Minio提供了非常方便,友好的界面,并且文档也是非常丰富,具体可以参考它的docs文档:https://docs.min.io/cn/为什么选择MinIo在之前的图片存储开发中曾使用了分布式文件服务FASTDFS和阿原创 2020-06-16 15:10:39 · 6667 阅读 · 1 评论 -
SpringBoot三十五:整合Dataway
Dataway介绍Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。这种内嵌集成方式模式的优点是,可以使得大部分老项目都可以在无侵入的情况下直接应用 Dataway。进而改进老项目的迭代效率,大大减少企业项目原创 2020-06-11 11:03:06 · 4096 阅读 · 0 评论 -
SpringBoot三十四:Flyway管理数据库脚本
官网:https://flywaydb.org/什么是Flyway?Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations可以写成SQL脚本,也可以写在Java代码中,不仅支持Command Line和Java API,还支持Build构建工具和Spring Boot等,同时在分布式环境下能够安全可靠地升级数据库,同时也支持失败恢复等。支持的数据库原创 2020-05-22 11:40:44 · 1290 阅读 · 0 评论 -
SpringBoot三十三:启动时加载方法
方式一:实现ServletContextListener接口@Componentpublic class SpringBootInitialization1 implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("方式一:实现ServletContextListener接口"); }}方式二:方原创 2020-05-14 11:44:07 · 515 阅读 · 0 评论 -
SpringBoot三十二:集成WebSocket
为什么需要 WebSocket初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。这种单向请求的特点,注定了如果服务器有连续...原创 2020-04-26 12:47:02 · 367 阅读 · 0 评论 -
SpringBoot三十一:集成邮件服务
发送邮件是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息。pom.xml引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></depe...原创 2020-04-17 14:46:56 · 329 阅读 · 0 评论 -
SpringBoot三十:使用Guava的RateLimiter限制IP访问接口频率
pom文件引入以下依赖<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>28.1-jre</version></dependency>RateLimiter...原创 2019-11-14 10:53:35 · 6394 阅读 · 3 评论 -
SpringBoot二十九:Mybatis逆向工程
pom文件引入以下依赖<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <...原创 2019-10-31 16:51:36 · 306 阅读 · 0 评论 -
SpringBoot:参考资料
application.propertierde完整的属性列表Spring Boot参考指南Spring Boot 中文导航Spring Boot 中文文档Spring Boot 自定义starter原创 2019-10-28 18:09:02 · 2066 阅读 · 0 评论 -
SpringBoot:其他
修改工程名及端口号server.port=8888 server.context-path=/javakf发布打包使用mvn package 打包使用java –jar 包名如果报错没有主清单,在pom文件中新增<build> <plugins> <plugin> <groupId>org.apache.maven.p...原创 2019-10-28 18:02:47 · 206 阅读 · 0 评论 -
SpringBoot二十八:使用zxing生成、识别二维码
生成二维码/** * 生成二维码 */public static String test1() throws IOException, WriterException { return QrCodeUtil.encodeQrCode("java开发", 500, 500, "src/main/resources/static/img/二维码(通过方式一生成).jpg");}/...原创 2019-10-28 17:44:41 · 2539 阅读 · 1 评论 -
SpringBoot二十七:多环境配置
相关知识(简述)SpringBoot profile:SpringBoot允许我们在配置文件(以application.properties示例)中通过配置spring.profiles.active=xxx,来对应激活application-xxx.properties配置,这就是SpringBoot profile。Maven profile:Maven允许我们在配置文件(项目...原创 2019-10-28 17:36:22 · 225 阅读 · 0 评论 -
SpringBoot二十六:使用Validation校验参数
作为服务端开发,验证前端传入的参数的合法性是一个必不可少的步骤,但是验证参数基本上是一个体力活,而且冗余代码繁多,也影响代码的可阅读性,所以有没有一个比较优雅的方式来解决这个问题?JSR-303验证框架,JSR-303 是Java EE 6 中的一项子规范,叫做BeanValidation,官方参考实现是Hibernate Validator(与Hibernate ORM 没有关系),JSR 3...原创 2019-10-28 17:29:53 · 791 阅读 · 0 评论 -
SpringBoot二十五:整合Easypoi
pom文件引入以下依赖<dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> <version>4.1.0</version></dependency>...原创 2019-10-28 17:22:42 · 1444 阅读 · 0 评论 -
SpringBoot二十四:文件上传
上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等pom文件引入以下依赖<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId></dependency><dependency> <g...原创 2019-10-28 14:33:19 · 293 阅读 · 0 评论 -
SpringBoot二十三:整合Swagger2
手写Api文档的几个痛点:文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。接口返回结果不明确不能直接在线测试接口,通常需要使用工具,比如postman接口文档太多,不好管理Swagger也就是为了解决这个问题,当然也不能说Swagger就一定是完美的,当然也有缺点,最明显的就是代码移入性比较强。其他的不多说,想要了解Swagger的,可以去Swagger官网,...原创 2019-10-28 14:24:12 · 390 阅读 · 0 评论 -
SpringBoot二十二:整合RabbitMQ
简介在Spring项目中,可以使用Spring-Rabbit去操作RabbitMQhttps://github.com/spring-projects/spring-amqp尤其是在spring boot项目中只需要引入对应的amqp启动器依赖即可,方便的使用RabbitTemplate发送消息,使用注解接收消息。一般在开发过程中:生产者工程:application.yml文件配置Ra...原创 2019-10-28 14:07:01 · 311 阅读 · 0 评论 -
SpringBoot二十一:集成pagehelper(两种方式)
pom文件引入以下依赖<!--pagehelper --><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2...原创 2019-10-28 13:29:13 · 407 阅读 · 0 评论 -
SpringBoot二十:使用FastJson解析JSON数据
springboot默认自带json解析框架,默认使用jackson,如果使用fastjson,可以按照下列方式配置使用pom文件引入以下依赖<dependencies> <!-- FastJson --> <dependency> <groupId>com.alibaba</groupId> <artifact...原创 2019-10-28 13:25:36 · 313 阅读 · 0 评论 -
SpringBoot十九:日志管理
sprongboot使用的默认日志框架是Logback。可以在application.properties配置简单日志属性,也可以单独配置logback.xml格式,还可以使用log4j来管理。下面分别介绍自带的日志配置以及如何使用log4j来作为日志管理。自带日志管理配置修改application.properties#配置日志logging.level.root=INFOlogg...原创 2019-10-28 13:21:48 · 280 阅读 · 0 评论 -
SpringBoot十八:分布式事物管理
springboot+jta+atomikos 分布式事物管理pom文件引入以下依赖<dependencies> <!-- 使用springboot+jta+atomikos 分布式事物管理 --> <dependency> <groupId>org.springframework.boot</groupId> <...原创 2019-10-28 09:42:59 · 305 阅读 · 0 评论 -
SpringBoot十七:整合多数据源
application.properties配置#test01 datasourcespring.datasource.test1.driverClassName = com.mysql.jdbc.Driverspring.datasource.test1.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&charac...原创 2019-10-28 09:36:21 · 254 阅读 · 0 评论 -
SpringBoot十六:使用@Async实现异步调用
启动加上@EnableAsync ,需要执行异步方法上加入 @Async@SpringBootApplication@EnableAsyncpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}...原创 2019-10-25 17:23:40 · 226 阅读 · 0 评论 -
SpringBoot十五:使用@Scheduled创建定时任务
在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置@Componentpublic class ScheduledTasks { // @Scheduled创建定时任务 @Scheduled(fixedRate = 1000) public void test() { // 执行任务调度方法 System.out.println("...原创 2019-10-25 17:16:54 · 246 阅读 · 0 评论 -
SpringBoot十四:使用AOP统一处理Web请求日志
pom文件引入以下依赖<!-- AOP --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>添加全局的We...原创 2019-10-25 17:12:48 · 293 阅读 · 0 评论 -
SpringBoot十三:整合ElasticSearch
pom文件引入以下依赖<dependencies> <!-- 添加ElasticSearch的启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasti...原创 2019-10-25 17:09:25 · 252 阅读 · 0 评论 -
SpringBoot十二:整合Redis
pom文件引入以下依赖<dependencies> <!-- 配置使用redis启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</art...原创 2019-10-25 16:57:20 · 216 阅读 · 0 评论 -
SpringBoot十一:整合Junit
pom文件引入以下依赖<!--测试的起步依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</sc...原创 2019-10-25 16:54:04 · 211 阅读 · 0 评论 -
SpringBoot十:整合Mybatis
pom文件引入以下依赖<dependencies> <!--mybatis起步依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactI...原创 2019-10-25 16:31:49 · 230 阅读 · 0 评论 -
SpringBoot九:整合JdbcTemplate
pom文件引入以下依赖<dependencies> <!-- Spring Boot web依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artif...原创 2019-10-25 16:21:45 · 216 阅读 · 0 评论 -
SpringBoot八:配置文件
SpringBoot配置文件类型SpringBoot配置文件类型和作用SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。SpringBoot默认会从Resources目录下加载application.prop...原创 2019-10-25 16:14:47 · 5420 阅读 · 0 评论 -
SpringBoot七:原理分析
起步依赖原理分析分析spring-boot-starter-parent按住Ctrl点击pom.xml中的spring-boot-starter-parent,跳转到了spring-boot-starter-parent的pom.xml,xml配置如下(只摘抄了部分重点配置):<parent> <groupId>org.springframework.bo...原创 2019-10-25 15:52:57 · 222 阅读 · 0 评论