202112-16 浅谈spring boot使用thymeleaf版本的问题 springboot使用thymeleaf版本问题Springboot默认使用的是thymeleaf的2版本,这个版本比较低,有些功能不支持,需要切换成3版本在properties中加入<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version><thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version>thymeleaf在Maven的版本配置<properties><thymeleaf.version>3.0.11.RELEASE</thymeleaf.version><thymeleaf-layout-dialect.ver... 继续阅读 >
202112-14 spring cloud服务之间的调用之ribbon详解 前言昨天,我们通过一个实例演示了,spring-cloud服务注册组件——Eureka的基本配置和简单用法,但是服务注册就是为了方便后期的发现和调用,所以今天我们趁热打铁,分享下spring-cloud服务之间的调用。服务间的调用关于spring-cloud的服务调用,我们首先需要了解它的两个核心组件Ribbon和Feign。我们都知道,springboot的接口都是基于REST实现的,但是在实际线上运行的时候,考虑到用户规模、服务可用性等方面的因素,我们一般很... 继续阅读 >
202112-13 在Spring-Boot中如何使用@Value注解注入集合类 我们在使用spring框架进行开发时,有时候需要在properties文件中配置集合内容并注入到代码中使用。本篇文章的目的就是给出一种可行的方式。1.注入通常来说,我们都使用@Value注解来注入properties文件中的内容,注入集合类时,我们也使用@Value来注入。properties文件中的内容如下:my.set=foo,barmy.list=foo,barmy.map={"foo":"bar"}分别是我们要注入的Set,List,Map中的内容。注入方式如下:@Value("#{${my.map}}")privateMa... 继续阅读 >
202112-13 Spring Boot中单例类实现对象的注入方式 SpringBoot单例类实现对象的注入1、最近接手了一个项目项目用的是SpringBoot,但其中有个类用的是单例,为了不改变单例,且还需要引入Spring管理的Bean对象2、对于一个单例类按照平时的注解方式添加启动时会报空指针异常,因为static类对象是创建对象后,内存中还没有注入Bean信息,且无法初始化Bean实例,这里的解决办法是利用@PostConstruct来对单例类中对象的注入@ComponentpublicclassMesssageHandleimplementsIMessageH... 继续阅读 >
202112-13 基于spring boot排除扫描类的三种方式小结 最近在做单测的时候,由于自己配置的springboot容器会默认扫描很多不想被加载,网上中文的文章并不多,所以来总结一下。默认下面描述的类都在一个包下面第一步我们新建一个应用启动的类,一个类用来充当Configuration,为了能明显的感知到其到底有没生效,我编写如下:@SpringBootApplicationpublicclassTest{publicstaticvoidmain(String[]args){newSpringApplication(Test.class).run(args);}}@Config... 继续阅读 >
202112-13 Spring boot 数据源未配置异常的解决 Springboot数据源未配置异常问题在使Springboot自动生成的项目框架时如果选择了数据源,比如选择了mysql,生成项目之后,启动会报一下异常:Description:CannotdetermineembeddeddatabasedriverclassfordatabasetypeNONEAction:Ifyouwantanembeddeddatabasepleaseputasupportedoneontheclasspath.Ifyouhavedatabasesettingstobeloadedfromaparticularprofileyoumayneedtoactiveit(nop... 继续阅读 >
202112-11 如何使用spring ResponseEntity处理http响应 简介使用spring时,达到同一目的通常有很多方法,对处理http响应也是一样。本文我们学习如何通过ResponseEntity设置http相应内容、状态以及头信息。ResponseEntityResponseEntity标识整个http相应:状态码、头部信息以及相应体内容。因此我们可以使用其对http响应实现完整配置。如果需要使用ResponseEntity,必须在请求点返回,通常在springrest中实现。ResponseEntity是通用类型,因此可以使用任意类型作为响应体:@GetMapping("... 继续阅读 >
202112-10 Spring Cloud OAuth2中/oauth/token的返回内容格式 目录背景实现原理代码实现相关类关键切面拦截器背景在前后端分离的项目中,一般后端返回给前端的格式是一个固定的json格式。在这个前提下,SpringCloudOAuth2生成accesstoken的请求/oauth/token的返回内容就需要自定义。访问/oauth/token示例如下:原始返回值的格式如下:我们希望使用我们自己固定的json格式,如下:实现原理原理就是通过切面编程实现对/oauth/token端点请求的结果进行拦截封装处理,由于/oauth/token是Spring... 继续阅读 >
202112-10 Spring 使用Validation 验证框架的问题详解 一、介绍SpringValidation验证框架对参数的验证机制提供了@Validated(Spring'sJSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。其中对于字段的特定验证注解,比如@NotNull。两者在检验Controller的入参是否符合规范时,使用@Validated或者@Valid在基本验证功能上没有太多区别。但是在分组、注解地方、嵌套验证等功能上两个有所不... 继续阅读 >
202112-10 Spring Security 安全框架应用原理解析 SpringSecurity简介背景分析企业中数据是最重要的资源,对于这些数据而言,有些可以直接匿名访问,有些只能登录以后才能访问,还有一些你登录成功以后,权限不够也不能访问.总之这些规则都是保护系统资源不被破坏的一种手段.几乎每个系统中都需要这样的措施对数据(资源)进行保护.我们通常会通过软件技术对这样业务进行具体的设计和实现.早期没有统一的标准,每个系统都有自己独立的设计实现,但是对于这个业务又是一个共性,后续市场上就... 继续阅读 >
202112-09 Spring Boot应用开发初探与实例讲解 SpringBoot是由Pivotal团队提供的全新Spring开发框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。从它的名字可以看出,SpringBoot的作用在于创建和启动新的基于Spring框架的项目。它的目的是帮助开发人员很容易的创建出独立运行和产品级别的基于Spring框架的应用。它包含的特性如下:应用独立运行,对于Web应用直接嵌入应用服务器(TomcatorJetty)根据项目的依赖(MavenorGradle中定义的依赖... 继续阅读 >
202112-09 浅谈spring DI 依赖注入方式和区别 目录springDI3种DI注解的区别1@Autowired2@Inject3@Resource3种注入方式的区别1field注入2构造器注入3setter注入构造器注入的好处1依赖不可变2依赖不为空3完全初始化状态4避免循环依赖5总结springDISpring框架对Java开发的重要性不言而喻,其核心特性就是IOC(InversionofControl,控制反转)和AOP,平时使用最多的就是其中的IOC,我们通过将组件交由Spring的IOC容器管理,将对象的依赖关系由Spring控制,避免硬编... 继续阅读 >
202111-19 spring data jpa开启批量插入、批量更新的问题解析 最近准备上spring全家桶写一下个人项目,该学的都学学,其中ORM框架,最早我用的是jdbcTemplate,后来用了Mybatis,唯独没有用过JPA(Hibernate)系的,过去觉得Hibernate太重量级了,后来随着springboot和springdatajpa出来之后,让我觉得好像还不错,再加上谷歌趋势。。。只有中日韩在大规模用Mybatis(我严重怀疑是中国的外包),所以就很奇怪,虽然说中国的IT技术在慢慢抬头了,但是这社会IT发展的主导目前看来还是美国、欧... 继续阅读 >
202111-17 基于javax.validation结合spring的最佳实践 前言本人先将用到的配置、工具类贴出来,然后一步步告诉大家怎么使用JSR303是一套JavaBean参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面,就可以在需要校验的时候进行校验了。注解如下:Hibernatevalidator在JSR303的基础上对校验注解进行了扩展,扩展注解如下:pom中添加注解<!--jsr303--><dependency><groupId>javax.validation</groupId>... 继续阅读 >
202111-17 浅谈如何在项目中使用Spring Cloud Alibaba Sentinel组件 目录Sentinel是什么Sentinel与Hystrix的区别 Sentinel分为两大部分:一、控制台(Dashboard) 二、搭建客户端1.在自己的项目中引入依赖2.编辑项目中的 application.yml或者bootstrap.yml文件3.资源是Sentinel中的一个关键概念。它可以是任何东西,例如服务、方法,甚至是代码片段。三、查看接口的流量的详情1.实时监控2.簇点链路3.等等:其他使用方法有待发掘 Sentinel是什么随着微服务的流行,服务和服务... 继续阅读 >
202111-16 一篇超详细的Spring Boot对jdbc支持的文章 目录项目结构pom.xml启动类Dao层Service层Controller层测试类测试总结项目结构pom.xmlpom.xml:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="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.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>spring-boot-0... 继续阅读 >