本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口调用测试和各种注释的可视化web界面.配置swagger的扫描包路径,api信息等,见配置类SwaggerConfig.项目中遇到的下列注解都由swagger提供: @Api.@ApiOperation.@ApiModel.@ApiModelProperty访问http://localhost/sw…
欢迎关注微信公众号: 小哈学Java 文章首发于个人网站: https://www.exception.site/springboot/spring-boot-model-attribute Spring Boot 2.0 中的注解 @ModelAttribute 有什么作用呢? 通常情况下,我们会将 @ModelAttribute 注解放置在 Controller 中的某个方法上,那么,如果您在请求这个 Controller 中定义的 URI 时,会首先调用这个被注解的方法,并将该方法的结果作…
@Conditional:判断@Conditional指定的条件是否成立,如果成立才会给容器中添加组件,配置类里面的内容才会生效 我们发现有很多的自动配置类,但是这些自动配置类都有指定的条件,必须满足这些条件,自动配置才会生效,比如 那我们怎么查看哪些自动配置类生效了呢 可以通过debug模式 1.application.properties配置以下内容 2.启动运行我们就可以查看到哪些自动配置类生效了 Positive matches:代表生效的自动配置类 Negative matches:没…
偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名. Spring Boot版本:1.5.4.release 数据表: id int, userName varchar(50) 那么如下的映射: @Data @Entity @Table(name="t_users") @NoArgsConstructor @AllArgsConstructor @Accessors(chain=true) public class User { @Id…
AOP(Aspect Oriented Programming),即面向切面编程,是Spring框架的大杀器之一. 首先,我声明下,我不是来系统介绍什么是AOP,更不是照本宣科讲解什么是连接点.切面.通知和切入点这些让人头皮发麻的概念. 今天就来说说AOP的一些应用场景以及如何通过和其他特性的结合提升自己的灵活性. AOP应用举例 AOP的一大好处就是解耦.通过切面,我们可以将那些反复出现的代码抽取出来,放在一个地方统一处理. 同时,抽出来的代码很多是与业务无关的,这样可以方便开发者更加专注自己…
这篇文章是抄其他人的,原址:https://cloud.tencent.com/developer/article/1082720 本文旨在向你介绍在Spring Boot中controller中最基本的一些注解,不可能涵盖所有的,但至少让你了解最基本的,然后可以通过这些注解来写出一个API或HTML的端点. 本文我们将分为四部分: 1.controller的类型(传统的 和 REST) 2.路由(Routes) 3.如何接收数据 4.Controller示例 Controller 类型 你也许…
在学习使用springboot过程中,我们经常碰到以@Enable开头的注解,其实早在Spring3中就已经出现了类似注解,比如@EnableTransactionManagement.@ EnableWebMvc等,本文以@ EnableAutoConfiguration注解为例跟踪一下源码,分析实现过程. @EnableAutoConfiguration注解 @EnableAutoConfiguration注解主要功能是启用自动配,将classpath中所有包下的META-INF/sprin…
ComponentScan 这个注解可以扫描带@Component的类.众所皆知,@RestController和@Configuration和@Service和@Configuration等都有带Component这个注解.所以如果要注入controller和service等,我们可以直接在类上面注解下,并且开启ComponentScan,这样会自动装载并注入这个实例,我们使用的时候可以直接@Autowired使用,下面以controller为栗子: a:首先在spring boot启动入口开…
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Spring Boot 版本:2.2.x 最好对 Spring 源码有一定的了解,可以先查看我的 <死磕 Spring 之 IoC 篇 - 文章导读> 系列文章 如果该篇内容对您有帮助,麻烦点击一下"推荐",也可以关注博主,感激不尽~ 该系列其他文章请查看:<精尽 Spring B…
http://www.cnblogs.com/zhangXingSheng/p/7744997.html spring boot 使用拦截器 实现 用户登录拦截 http://www.cnblogs.com/zhangXingSheng/p/7744993.html shiro (java安全框架)https://baike.baidu.com/item/shiro/17753571?fr=aladdinjava用户角色权限设计https://www.cnblogs.com/flyhigh186…
前言 昨天,我开发的代码,又收获了一个bug,说是界面上列表查询时,正常情况下,可以根据某个关键字keyword模糊查询,后台会去数据库 %keyword%查询(非互联网项目,没有使用es,只能这样了):但是,当输入%字符时,可以模糊匹配出所有的记录,就好像,好像这个条件没进行过滤一样. 原因很简单,当输入%时,最终出来的sql,就是%%%这样的. 我们用的mybatis plus,写法如下,看来这样是有问题的(bug警告): QueryWrapper<QueryUserListReqVO>…
SpringApplicationBuilder: 该方法的作用是可以把项目打包成war包 需要配置启动类,pom.xml文件等,具体见:http://blog.csdn.net/linzhiqiang0316/article/details/52601292 @SpringBootApplication public class FavoritesApplication extends SpringBootServletInitializer{ /** * 如此配置打包后可以用tomcat下使…
场景 不管是传统行业还是互联网行业,我们都需要保证大部分操作是幂等性的,简单点说,就是无论用户点击多少次,操作多少遍,产生的结果都是一样的,是唯一的.而今次公司的项目里,又被我遇到了这么一个幂等性的问题,就是用户的余额充值.创建订单和订单支付,不管用户点击多少次,只会有一条充值记录,一条新订单记录,一条订单支付记录. 技术方案 现在使用比较广泛的方案都是基于Redis. 方案:Redis+token 处理流程:数据提交前,前端要向服务端的申请token,token(带有过期时间)放到redis:…
Controller常用注解 @Controller  处理http请求 @RestController Spring4之后新加的注解,原来返回json数据需要@ResponseBody配合@Controller,现在合并成@RestController @RequestMapping  配置url映射,value配置url方法路径,method配置请求方式, 例:@RequestMapping(value="hello",method = RequestMethod.GET) @Pa…
@SpringBootApplication(exclude = SessionAutoConfiguration.class) public class BootReactApplication { public static void main(String[] args) { SpringApplication.run(BootReactApplication.class, args); } } 点进去后可以看到有关的源码,可以看到下面的注解 @Target(ElementType.TYP…
@Table(name = "OrderInfo") @Entity public class OrderInfo { @Id @GeneratedValue private Long id; @Column(name = "timeReg") private String timeReg; 配置后生成Order_info 表,不生成OrderInfo表,加入以下配置即可 spring.jpa.hibernate.naming.physical-strategy=o…
import org.springframework.boot.autoconfigure.condition.*; @ConditionalOnBean // 当容器中有指定bean的条件下 @ConditionalOnClass // 当类路径下有指定类的条件下 @ConditionalOnExpression // 基于SpEL表达式作为判断条件 @ConditionalOnJava // 基于JVM版本作为判断条件 @ConditionalOnJndi // 在JNDI存在的条件下查找指…
1.@RestController @RestController 相当于@Controller+@ResponseBody 注解如果使用@RestController 注解Controller 中的方法无法返回页面,相当于在方法上面自动加了@ResponseBody 注解, 所以没办法跳转并传输数据到另一个页面, 所以InternalResourceViewResolver 也不起作用,返回的内容就是Return 里的内容. 2@GetMapping@GetMapping 注解是@Reques…
一般来说function2和function1用的是同一个Transaction. 这个取决于@Transactional 的 propagation设置(事务的传播性) 默认的是 1 @Transactional(propagation=propagation.REQUIRED) 也就是使用同一个Transaction.也可以按需求设置成 NESTED 或者 REQUIRES_NEW. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 //in A.java Class A {…
功能比较 :     @ConfigurationProperties  @Value  映射赋值 批量注入配置文件中的属性 一个个指定 松散绑定(松散语法)① 支持 不支持 SpEL② 不支持 支持 JSR303数据校验③ 支持 不支持 复杂类型封装④ 支持 支持             说明 ① 指属性在配置文件中value是否对驼峰,下划线"_" .连接线"-" 都支持,如下写法,在javaBean中,属性值firstName是否都能获取到值 – person…
学习和应用 Spring Boot 有一些时间了,你们对 Spring Boot 注解了解有多少呢?今天栈长我给大家整理了 Spring Boot 最核心的 25 个注解,都是干货! 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启的 2 种方式 Spring Boot 自动配置原理.实战 Spring Boot 2.x 启动全过程源码分析 Java 必须掌握的 12 种 Spring 常用注解! 更多请在Java技术栈微…
前言 不知道大家在使用Spring Boot开发的日常中有没有用过@Conditionalxxx注解,比如@ConditionalOnMissingBean.相信看过Spring Boot源码的朋友一定不陌生. @Conditionalxxx这类注解表示某种判断条件成立时才会执行相关操作.掌握该类注解,有助于日常开发,框架的搭建. 今天这篇文章就从前世今生介绍一下该类注解. Spring Boot 版本 本文基于的Spring Boot的版本是2.3.4.RELEASE. @Conditiona…
@Async 需要执行异步方法时,在方法上加上@Async之后,底层使用多线程技术 .启动类上需要加上 @EnableAsync 注意:异步执行方法,不能与引用方法同在一个类里 @Transactional org.springframework.transaction.annotation包 ,不是来自javax.transaction .而且@Transactional不仅可以注解在方法上,也可以注解在类上.当注解在类上的时候意味着此类的所有public方法都是开启事务的.如果类级别和方法级…
最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过.然而,当我问他们 Spring Boot 最核心的 3 个注解是什么,令我失望的是鲜有人能答上来,这样你能说你对 Spring Boot 很了解吗?这可能还会给你减分! 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启的 2 种方式 Spring Boot 自动配置原理.实战 Spring Boot 2…
出现这个问题, 说明一点, 我对spring的注解方式的配置只是知道一个皮毛. 没有深入理解. 有时间要把这部分充充电 package com.zhike.qizhi.common.dao; import com.zhike.qizhi.common.page.Pagination; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.session.SqlSessionFactory; import org…
Spring Boot 核心注解讲解 Spring Boot 最大的特点是无需 XML 配置文件,能自动扫描包路径装载并注入对象,并能做到根据 classpath 下的 jar 包自动配置. 所以 Spring Boot 最核心的 3 个注解就是: 1.@Configuration org.springframework.context.annotation.Configuration 这是 Spring 3.0 添加的一个注解,用来代替 applicationContext.xml 配置文件,…
Redis 在 Spring Boot 2.x 中相比 1.5.x 版本,有一些改变.redis 默认链接池,1.5.x 使用了 jedis,而2.x 使用了 lettuce Redis 接入 Spring Boot 缓存,使用的注解跟 Ehcache 接入缓存的注解是一样的,Spring Boot 缓存应用 Ehcache 入门教程 安装 Redis 请参见 如何在 Mac 下安装 Redis 和 如何在 Window 下安装 Redis 本文仅仅适用 spring boot 2.x redi…
关于对象入参的校验,我们可能第一个想到的就是在Controller层或者Service层增加很多if else的判断,如: if (user.getPassword() == "") { throw new BusinessException("password can not be empty!"); } if (user.getRank() > 30 || user.getRank() <= -1) { throw new BusinessExcep…
Annotation(注解)是JDK1.5及以后版本引入的.它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查.注解是以‘@注解名’在代码中存在的. 前面讲解 IOC 和 DI 都是通过 xml 文件来进行配置的,我们发现 xml 配置还是比较麻烦的,那么如何简化配置呢?答案就是使用注解! PS:本篇博客源码下载链接:http://pan.baidu.com/s/1geBMPrX 密码:z7ku 1.注解 @Component 我们这里有个类 Person package com.y…
第一步:在 applicationContext.xml 中引入命名空间 这里我们简单讲解一下这里引入的命名空间,简单来说就是用来约束xml文件格式的.第一个 xmlns:context ,这表示标签格式应该是 <context:标签名> 第二步:在 applicationContext.xml 文件中引入注解扫描器 <!-- 组件扫描,扫描含有注解的类 -->     <context:component-scan base-package="com.ys.ann…