import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * @Author:CoderZZ * @Description…
前言 在一个web项目中,某些页面是可以匿名访问的,但有些页面则不能.spring mvc提供了HandlerInterceptor接口来应对,只需要重写preHandle方法便可以实现此功能.那么使用spring boot是怎么实现的呢? 一.准备工作 pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta…
本章介绍 Spring Boot 整合 Ftpclient 的示例,支持断点续传 本项目源码下载 1 新建 Spring Boot Maven 示例工程项目 注意:是用来 IDEA 开发工具 File > New > Project,如下图选择 Spring Initializr 然后点击 [Next]下一步 填写 GroupId(包名).Artifact(项目名) 即可.点击 下一步 groupId=com.fishpro artifactId=ftpclient 选择依赖 Spring W…
1.先做个最简单的Get请求 新建一个Controller , 并给他添加注解@RestController 它是@Controller和@ResponseBody的组合注解,告诉Spring我是一个Controller,请求过来的时候,记得扫描我 ok,在给他添加@RequestMapping注解,为这个Controler指明路径 @RestController @RequestMapping("/Demo") public class DemoController { @Respo…
项目中需要监听用户具体的请求操作,便通过一个拦截器来监听,并继续相应的日志记录 项目构建与Spring Boot,Spring Boot实现一个拦截器很容易. Spring Boot的核心启动类继承WebMvcConfigurerAdapter // 增加拦截器 @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new RequestLog()); } //这…
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等. AOP简介 AOP全称Aspect Oriented Programming,面向切面,AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果.其与设计模式完成的任务差不多,是提供另一种角度来思考程序的结构,来弥补面向对象编程的不足. 通俗点讲就是提供一个为一个业务实现提供切面注入的机制,通过这种方式,在业务运行中将…
1.使用spring boot实现一个拦截器 1.引入依赖: <dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-aop</artifactId> </dependency>    2.创建拦截器类(在该类中,定义了拦截规则:拦截com.xjj.web.controller包下面的所有类中,有@Requ…
为了保证服务的高可用,及时发现问题,迅速解决问题,为应用添加log是必不可少的. 但是随着项目的增大,方法增多,每个方法加单独加日志处理会有很多冗余 那在SpringBoot项目中如何统一的处理Web请求日志? 基本思想: 采用AOP的方式,拦截请求,写入日志 AOP 是面向切面的编程,就是在运行期通过动态代理的方式对代码进行增强处理 基于AOP不会破坏原来程序逻辑,因此它可以很好的对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率.…
一.概述 经过HelloWorld示例(Spring Boot 2.x 快速入门(上)HelloWorld示例)( Spring Boot 2.x 快速入门(下)HelloWorld示例详解)两篇的学习和练习,相信你已经知道了Spring Boot是如此的简单,但又有不少疑惑,那么多注解如何记住,他的生态怎么样,缓存.NoSQL.定时器.邮件发送等细节功能如何处理. 如果你觉得一篇一篇看文章学习太耗时间,你看这篇就够啦,如果你觉得这篇太长,可以分期慢慢看. 下载本章源码 本章是一个文章发布管理系…
RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用.Spring Boot的兴起,极大地简化了Spring的开发,本文将使用Spring Boot与RabbitMQ进行简单整合,实现生产和消费消息. 配置 Spring Boot使用了这么久,套路差不多摸清楚了.Spring Boot与其他组件进行整合,无非就是加入pom依赖,接着配置一些基本信息,然后就可以使用相关注解进行开发了. RabbitMQ也是相同的套路,第一步要引入依赖.要引入的依赖比较容易记,R…
简介 本项目是使用Spring Boot编写的一个简单的会员管理系统. 提供了会员的解决方案,主要有会员模块,管理员模块,礼品模块,商品模块,会员等级模块,生日提醒模块,积分模块,详细模块如下图 准备阶段 导入项目 通过链接GitHub或CSDN资源下载项目文件 下载后导入项目,这里我使用的IDE是IntelliJ IDEA 导入数据库文件 在项目的路径下可以找到db_membership.sql文件,该文件是MySQL的数据库数据文件.通过MySQL导入该文件生成数据库db_membershi…
import com.example.demo2.com.example.dao.ShopDao; import com.example.demo2.com.example.entity.Shops; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframew…
Spring Boot简介 接下来我们所有的Spring代码实例将会基于Spring Boot,因此我们先来了解一下Spring Boot这个大杀器. Spring早期使用XML配置的方式来配置Spring Beans之间的关系,比如AOP和依赖注入的配置.随着功能以及业务逻辑的日益复杂,应用便会伴随大量的XML配置文件以及复杂的Bean依赖关系.随着Spring 3.0的发布,Spring团队逐渐开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over…
学习过程: elasticsearch 下载安装 elasticsearch-head 安装 spring boot 下elasticsearch的配置 使用ElasticsearchRepository实现增删改查(ElasticsearchRepository,elasticsearchTemplate) 如何优雅的使用FunctionScoreQueryBuilder 测试 一.elasticsearch 下载安装:ElasticSearch官网:http://www.elasticsea…
#### 一.创建一个简单的Maven项目 使用`Maven`,通过导入`Spring Boot`的`starter`模块,可以将许多程序依赖的包自动导入到工程中.使用`Maven`的`parent POM`,还可以更加容易地管理依赖的版本和使用默认的配置,工程中的模块也可以很方便地继承它. 在`pom.xml`中添加如下依赖: ```xml ``` ### 二.创建一个Spring Boot应用 ```java package com.lemon.springboot.example; imp…
前言 swagger2 是什么,我这里就不说了,就是一个简单的接口文档,方便前后端联调. 其实之前没有想要到要使用swagger 的.因为我之前用的是YAPI ,不过这个是一个单独的工具.并且是开源的,整个团队协作使用起来非常方便.但是这里我们坐个人项目的话,就使用比较简单的swagger2了,我们在在springboot中使用swagger2 比较简单. pom.xml 一切从配置开始的,我们映入swagger2 ,需要先引入依赖.如下: <dependency> <groupId&g…
1.搭建SpringBoot项目首先我们先在IDEA上创建一个SpringBoot的Web项目(1)file ——> new ——> project——> Spring Initializr (2)——> next 这里是包路径前缀,可修改也可不修改(默认)com.example.demo(3)——> next 这里要选择包依赖关系,我们这里就先选择这一个:(4)web:选择web(5)——> next后面还要再加包的话,可以在pom文件里加. (6)——> fi…
目录 一.自定义异常页面 二.单元测试 ​三.多环境选择 四.读取主配置文件中的属性 五.读取List属性 一.自定义异常页面 对于404.405.500等异常状态,服务器会给出默认的异常页面,而这些异常页面一般都是英文的,且非常不友好.我们可以通过简单的方式使用自定义异常页面,并将默认状态码页面进行替换 1.定义目录 在src/main/resources目录下再定义新的目录public/error,必须是这个目录名称 2.定义异常页面 3.修改处理器模拟500错误 4.访问效果 二.单元测试…
添加相关依赖 <?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://maven.apache.org/POM/4.…
1.创建mave工程(jar) 2.pom文件引入依赖 <!--引入父依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <dependen…
之前没有折腾过Spring,直接上来怼Spring Boot异常痛苦,参考着官网的guide(https://spring.io/guides)写了几个demo: spring boot 跑起来确是方便,有种python的感觉,几行代码就可以起一个web服务,还不用自己去配置tomcat之类的: 于是尝试学习一下,目标就是写了一个注册登录的web页面出来,数据需要存放在DB中,这么一个简单的需求: 就是这么一个简单的demo折腾了好几天,虽然spring的资料很多,但零零碎碎的,本以为有很多登录…
之前在<使用AOP统一处理Web请求日志>一文中介绍了如何使用AOP统一记录web请求日志.基本思路是通过aop去切web层的controller实现,获取每个http的内容并通过log4j将日志内容写到应用服务器的文件系统中. 但是当我们在集群中部署应用之后,应用请求的日志被分散记录在了不同应用服务器的文件系统上,这样分散的存储并不利于我们对日志内容的检索.解决日志分散问题的方案多种多样,本文思路以在<使用AOP统一处理Web请求日志>一文的基础之上,扩展log4j实现将日志写入…
比如一个接口,既想实现请求参数是application/json,又想实现form提交,改怎么做呢?用postman去测试,发现不可能做到两全其美. 我有一个方法,就是不用requestbody,也可以实现json解析,首先是新建一个包装类,这个类可以重复读inputstream里面的东西. 如果加了requestbody,就无法用form提交,如果去掉requestbody 那么就无法获取到json里面的值,因为全是null. class BodyReaderHttpServletReques…
在启动jar的时候添加一个配置  -Dfile.encoding=utf-8  java -Dfile.encoding=utf-8 -jar xxxxtest-0.1.jar…
参考博客: https://blog.csdn.net/weixin_42456466/article/details/80728387 https://www.cnblogs.com/QQParadise/articles/5558816.html…
1. application.properties #\u4E3B\u5E93\u914D\u7F6E spring.datasource.primary.url=jdbc:mysql://mysql.test.xxxxx.com:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false spring.datasource.primary.username=root spring.datasource.primary.pas…
package com.example.zs; import com.example.zs.mapper.UserMapper; import com.example.zs.pojo.User; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.t…
一.异常处理的原则 1.调用方法的时候返回布尔值来代替返回null,这样可以 NullPointerException.由于空指针是java异常里最恶心的异常. 2. catch块里别不写代码.空catch块是异常处理里的错误事件,因为它只是捕获了异常,却没有任何处理或者提示.通常你起码要打印出异常信息,当然你最好根据需求对异常信息进行处理. 3.能抛受控异常(checked Exception)就尽量不抛受非控异常(unchecked Exception[Error或者RuntimeExcep…
第一:打开idea 找到spring  Initializr 第二:点击Next 在点击下一步 找到web之后勾选第一个spring web 就完成了 在写一个类 点击运行 结果如下:…
一.xml配置版 1.properties文件中增加的配置: mybatis.config-locations=classpath:mybatis/mybatis-config.xml mybatis.mapper-locations=classpath:mybatis/mapper/*.xml 2.mybatis-config.xml文件的配置 mapper文件里面的jdbcType重命名 <configuration> <typeAliases> <typeAlias a…