springboot
文章平均质量分 52
springboot学习笔记
喝酸奶要舔盖儿
这个作者很懒,什么都没留下…
展开
-
Java代码混淆工具-ProGuard
ProGuard是一个压缩、优化和混淆Java字节码文件的免费的工具,它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。常常用于Android开发用于混淆最终的项目,增加项目被反编译的难度。原创 2023-02-24 15:49:19 · 2651 阅读 · 0 评论 -
Springboot停机方式
springboot的优雅停机方式及其处理原创 2023-02-13 14:41:35 · 726 阅读 · 0 评论 -
Spring中事务传播特性(Propagation)
其中定义了事务的传播特性原创 2022-09-03 10:22:56 · 459 阅读 · 0 评论 -
关于spring中使用责任链模式
2. 实现链式调用3. 自定义handler3.1 自义定参数对象3.2 自定义handler,继承上方的3.3 编写实现类4. 调用5. 结果原创 2022-07-07 21:00:18 · 698 阅读 · 4 评论 -
关于springboot集成ldap
1. 准备1.1 导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-ldap</artifactId> </dependency>1.2 修改配置spring: ldap: urls: lda原创 2022-04-07 11:09:56 · 1788 阅读 · 1 评论 -
关于springboot中Cacheable使用说明
1. 功能说明@Cacheable 注解在方法上,表示该方法的返回结果是可以缓存的。也就是说,该方法的返回结果会放在缓存中,以便于以后使用相同的参数调用该方法时,会返回缓存中的值,而不会实际执行该方法。注意,这里强调了一点:参数相同。这一点应该是很容易理解的,因为缓存不关心方法的执行逻辑,它能确定的是:对于同一个方法,如果参数相同,那么返回结果也是相同的。但是如果参数不同,缓存只能假设结果是不同的,所以对于同一个方法,你的程序运行过程中,使用了多少种参数组合调用过该方法,理论上就会生成多少个缓存的 ke原创 2022-03-28 17:41:12 · 3668 阅读 · 0 评论 -
springboot集成flowable--flowable配置说明
# ===================================================================# Common Flowable Spring Boot Properties# 通用Flowable Spring Boot参数## This sample file is provided as a guideline. Do NOT copy it in its# entirety to your own application. .原创 2022-03-09 17:36:41 · 7080 阅读 · 0 评论 -
springboot集成flowable默认流程位置
flowable-start会默认加载classpath*:/processes/下的流程文件具体配置如下org.flowable.spring.boot.FlowableProperties:93原创 2022-03-09 16:50:29 · 421 阅读 · 0 评论 -
springboot读取pom.xml文件中的值
applycation.yml中加上version :@project.version@原创 2022-02-18 18:10:59 · 618 阅读 · 0 评论 -
Springboot参数校验及自定义参数校验
1. 为什么需要参数校验在日常的接口开发中,为了防止非法参数对业务造成影响,经常需要对接口的参数做校验,例如登录的时候需要校验用户名密码是否为空,创建用户的时候需要校验邮件、手机号码格式是否准确。靠代码对接口参数一个个校验的话就太繁琐了,代码可读性极差。Validator框架就是为了解决开发人员在开发的时候少写代码,提升开发效率;Validator专门用来进行接口参数校验,例如常见的必填校验,email格式校验,用户名必须位于6到12之间 等等…2. SpringBoot中集成参数校验2.1 引入依原创 2022-02-17 16:20:51 · 4458 阅读 · 1 评论 -
Springboot设置手动回滚事务
当springboot使用事务时只加一个 @Transactional时,idea提示方法【addOrganization】需要在Transactional注解指定rollbackFor或者在方法中显式的rollback。具体提示如下按上述提示需要指定回滚异常类或者添加DataSourceTransactionManager事务管理器进行回滚事务。简单实现使用下述代码代替,并不能消除idea提示TransactionAspectSupport.currentTransactionStatus()原创 2022-01-12 10:32:17 · 489 阅读 · 0 评论 -
Mybatis打印全量sql
1. 实现Mybatis拦截器@Intercepts({ @Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}), @Signature(type = Executor.class, method = "query", args = {MappedStatement.class,原创 2022-01-10 10:48:02 · 340 阅读 · 0 评论 -
springboot实现动态配置logstash
springboot实现动态配置logstash原创 2021-11-20 10:37:30 · 2114 阅读 · 0 评论 -
Springboot集成Elastic_search及应用
1.环境准备Linux中使用docker安装ELK详解Elastic_search官方文档2. springboot集成elasticsearch2.1 导入pom.xml依赖根据自己es版本选择相应的依赖maven版本 <properties> <java.version>1.8</java.version> <elasticsearch.version>7.6.0</elasticsearch.原创 2021-11-02 14:42:50 · 2058 阅读 · 0 评论 -
Logback日志输入到logstash
添加依赖 <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>4.9</version> </dependency>logback-spring.x原创 2021-10-18 16:27:11 · 954 阅读 · 0 评论 -
Mybatis-Plus对select中模糊查询%转义插件
1. 新建 CharEscapeInnerInterceptorpublic class CharEscapeInnerInterceptor implements InnerInterceptor { @SneakyThrows @Override public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler原创 2021-10-12 17:41:51 · 667 阅读 · 0 评论 -
idea编译srping源码
工具ideagitgradle编译1. 下载spring源码git clone https://gitee.com/songfuxiang/spring-framework.git下载源码后先不要着急打开(打开项目根目录,看步骤:打开import-into-idea.md)2. 执行编译,在项目根目录下执行命令,很慢gradlew :spring-oxm:compileTestJava编译成功3.导入项目等idea自动构建项目即可错误及解决方案1.报错原创 2021-09-01 18:30:07 · 127 阅读 · 0 评论 -
关于springboot获取接口下所有实现类
首先定义一个接口public interface LoginUserService { /** * 判断手机号是否允许登录 * * @param phone 手机号 * @return 是否允许 */ boolean hasUser(String phone) throws ServiceException; /** * 通过Phone获取用户信息 * * @param phone 手机号原创 2021-07-26 10:29:24 · 2265 阅读 · 0 评论 -
关于AOP实现API接口签名校验
1. 签名的概念目的: 为了确认某个信息确实是由某个发送方发送的,或者某个发布内容确实是由发送方发布的,任何人都不可能伪造消息,并且,发送方也不能抵赖。方法: 对发布的信息内容,通过某种可靠的加工(比如进行MD5运算),生成签名标识(字符串序列或者证书之类)验证: 任何人拿到发布的信息内容后,可以通过同样的加工,得出签名标识,如果比对和发布者公布的签名一致,则验证为真。签名与加密区别: 加密是为了不让别人知道原来的信息,签名是为了保证大家获取到的原来的信息是没有经过改动的。2. Web API使用原创 2021-07-16 14:13:52 · 972 阅读 · 1 评论 -
YAML文件(.yml)中的键(key)通过变量引用来设置
1. 通过变量引用设置配置量的【值(value)】在YAML文件中,一个配置量的 值 可以通过引用另一个变量来设置。例如:default-db: port: 3306user-db: port: ${default-db.port}但是,如果想通过变量引用设置键,通过${}是做不到的。例如:site: url: user: www.user.net shop: www.shop.netsite: slogan: ${site.url.user}: e原创 2021-07-15 11:02:07 · 4707 阅读 · 3 评论 -
关于springboot使用ApplicationEvent和Listener快速实现业务解耦
ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。通过 ApplicationEvent 类和 ApplicationListener 接口来提供在 ApplicationContext 中处理事件。如果一个 bean 实现 ApplicationListener,那么每次 ApplicationEvent 被发布到 ApplicationContext 上原创 2021-07-09 18:22:21 · 279 阅读 · 0 评论 -
关于springboot中使用flyway说明
1. 什么是 FlywayFlyway是一款管理并跟踪数据库迁移(migrate)的数据库版本管理工具。它可以像SVN管理不同人的代码那样,管理不同人的sql脚本,从而做到数据库同步。它可以帮助我们在不同环境保持数据库的同步,减少手工操作,同时也减少了遗漏的机会。flyway可以集成在项目中,可以与Spring 框结合。在项目发版时,自动执行数据库脚本,无需人为执行数据库同步操作。2. Flyway使用方法2.1 引入Maven<dependency> <groupId&g原创 2021-06-28 11:16:37 · 468 阅读 · 0 评论 -
关于springboot-start编写方法
1. 首先需要引入maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupI原创 2021-06-08 15:05:40 · 198 阅读 · 0 评论 -
logback自定义日志配置
1. logback-spring.xml详解Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),命名为logback-spring.xml的日志配置文件,将xml放至 src/main/resource下面。也可以使用自定义的名称,比如logback-config.xml,只需要在application.properties文件中使用logging.config=classpath:logba原创 2021-05-28 16:02:03 · 1934 阅读 · 0 评论 -
spring boot项目中使用logback日志详解
1. 谈一谈spring boot中的默认日志SpringBoot为Java Util Logging,Log4J2和Logback提供了默认配置。SpringBoot默认配置日志输出到控制台,同时还提供可选文件输出。SpringBoot默认采用SLF4j(日志抽象层)+ Logback(日志实现)的组合。1.1 日志门面slf4j与日志实现logbackSLF4J——Simple Logging Facade For Java,它是一个针对于各类Java日志框架的统一Facade抽象。Java日志原创 2021-05-28 14:54:18 · 1583 阅读 · 1 评论 -
使用aop进行service层日志打印
@Slf4j@Aspect@Configurationpublic class ServiceLogAspectConfig { @Pointcut("within(com.yuxiang.intelligence.service.service.base.IBaseService+)") public void serviceLog() { } @Around("serviceLog()") public Object doAroundService(P原创 2021-05-17 21:15:50 · 793 阅读 · 0 评论 -
使用aop进行controller层日志打印
@Slf4j@Aspect@Configurationpublic class ControllerLogAspectConfig { @Pointcut("@within(org.springframework.stereotype.Controller) || @within(org.springframework.web.bind.annotation.RestController)") public void pointCut(){ } @Around原创 2021-05-17 21:14:28 · 444 阅读 · 0 评论 -
java反射判断对象属性值是否为空
@Around("@annotation(requireArea)") public Object doAroundService(ProceedingJoinPoint joinPoint, RequireArea requireArea) throws Throwable { Class<?> aClass = joinPoint.getTarget().getClass(); MethodSignature signature = (Me...原创 2021-05-08 11:33:28 · 651 阅读 · 0 评论 -
关于OpenFeign调用时丢失cookie的解决方案
@Configurationpublic class FeignConfiguration { @Bean("requestInterceptor") public RequestInterceptor requestInterceptor(){ return template -> { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContex原创 2021-05-08 10:18:50 · 1172 阅读 · 0 评论 -
关于springboot去除参数中前后空格说明
1. 需求使用SpringBoot使用过滤器去除@RequestBody参数两端的空格;一般我们去普通的请求我们都会对请求参数进行验证。Java也提供了@notNull和@notBlank这种验证方式,但是对@RequestBody 这种只能验证是不是非空,对数据两端的空格未进行处理,同时大家也不想遍历一遍参数然后再处理再封装到对象中,正好项目中有这个需要,所以就参考别的做了Post请求中针对application/json格式的有@RequestBody注解的参数进行了去空格处理2. 解决方法2.1原创 2021-04-22 11:03:32 · 6033 阅读 · 6 评论 -
关于Springboot整合Shiro说明
1. Shiro安全框架简介1.1 Shiro概述Shiro是apache旗下一个开源安全框架(http://shiro.apache.org/),它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。使用shiro就可以非常快速的完成认证、授权等功能的开发,降低系统成本。用户在进行资源访问时,要求系统要对用户进行权限控制,其具体流程 1.2 Shiro概要架构在概念层面,Shiro 架构包含三个主要的理念Subject原创 2021-02-20 18:21:39 · 200 阅读 · 1 评论 -
关于springboot中时间格式化说明
1. 使用Jackson导入依赖包<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.0</version></dependency>2. 使用方法2.1 单个使用@JsonFormat(pa原创 2021-02-05 18:28:32 · 149 阅读 · 0 评论 -
关于Mybatis中返回插入数据的id值
<!--新增所有列--> <insert id="insert" keyProperty="id" useGeneratedKeys="true"> insert into user(user_name, pass_word, gmt_create, gmt_modified) values (#{userName}, #{passWord}, #{gmtCreate}, #{gmtModified}) </insert>.原创 2021-02-04 13:17:03 · 254 阅读 · 0 评论 -
关于JSCH使用自义定连接池说明
1. JSCH使用方法jsch使用方法2. JSCH工具类JSCH工具类3. 创建连接池ConnectionPool.java@Slf4jpublic class ConnectionPool { private String strictHostKeyChecking; private Integer timeout; /** * ip地址 */ private String ip = ""; /** * 端口号原创 2021-02-02 11:38:29 · 4293 阅读 · 3 评论 -
关于springboot中@Scheduled(cron = “* * * * * *“)参数说明
1. cron表达式格式:@Scheduled(cron = "* * * * * *"):{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}2. cron表达式各占位符解释:{秒数}{分钟} ==> 允许值范围: 0~59 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常* :代表每隔1秒钟触发;, :代表在指定的秒数触发,比如”0,15,45”代表0秒、15秒和45秒时触发任务-:代表在指定的范围内触发,比如”25-45”原创 2021-02-01 12:19:48 · 1987 阅读 · 0 评论 -
关于Springboot使用knife4j说明
1. Knife4j 简介knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui.为了契合微服务的架构发展,由于原来swagger-bootstrap-ui采用的是后端Java代码+前端Ui混合打包的方式,在微服务架构下显的很臃肿,因此项目正式更名为knife4j更名后主要专注的方面前后端Java代码以及前端Ui模块进行分离,在微服务架构下使用更加灵活提供专注于Swagger的增强解决方案,不同于只是改善增强前端原创 2021-01-28 17:15:30 · 2383 阅读 · 2 评论 -
关于HttpServletRequest获取请求地址说明
如果项目名称为test,你在浏览器中输入请求路径:http://localhost:8080/test/pc/list.jsp执行下面向行代码后打印出如下结果:System.out.println(request.getContextPath());打印结果:/testSystem.out.println(request.getServletPath());打印结果:/pc/list.jspSystem.out.println(request.getRequestURI());打印结果:/t原创 2021-01-28 14:29:15 · 1886 阅读 · 0 评论 -
关于springboot中filter中使用全局异常处理说明
在项目的开发中,在某些情况下,我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect。总结过滤器Filter: 可以获得Http原始的请求和响应信息,但是拿不到响应方法的信息拦截器Interceptor: 可以获得Http原始的请求和响应信息,也拿得到响应方法的信息,但是拿不到方法响应中参数的值ControllerAdvice(Controller增强,自spring3.2的时候推出):主要是用于全局的异原创 2021-01-27 18:22:34 · 1797 阅读 · 3 评论 -
关于springboot中classpath:路径使用说明
使用classpath:做为路径通过@value获取配置文件中的路径,后经过ResourcePatternResolver 获取文件ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource resource = resolver.getResource(modelpath);...原创 2021-01-26 14:41:06 · 8693 阅读 · 0 评论 -
关于springboot整合Jcasbin权限校验说明
1. Casbin简介使用文档1.1Casbin 是什么?Casbin 可以:支持自定义请求的格式,默认的请求格式为{subject, object, action}。具有访问控制模型model和策略policy两个核心概念。支持RBAC中的多层角色继承,不止主体可以有角色,资源也可以具有角色。支持内置的超级用户 例如:root或administrator。超级用户可以执行任何操作而无需显式的权限声明。支持多种内置的操作符,如 keyMatch,方便对路径式的资源进行管理,如 /原创 2021-01-21 18:27:34 · 6581 阅读 · 2 评论