秒扒Spring
文章平均质量分 78
Spring Boot ,Spring Security等Spring框架学习
崔世勋
这个作者很懒,什么都没留下…
展开
-
spring事务和syncrhonizd锁的问题
由于Spring事务是通过AOP实现的,所以在synchronized修饰的方法执行前会有开启事务,之后会有提交事务逻辑,而synchronized代码块执行是在事务之内执行的,在syncrhonized代码块执行完时,事务还未提交,其他线程进入synchronized代码块后,读取的库数据不是最新的,所以会出问题。解决方法:把synchonized修饰的级别向上提一级,这样synchroni...转载 2019-10-13 13:35:02 · 574 阅读 · 0 评论 -
springboot mybatis多数据源的两种整合方法
一个项目使用多个数据库(无论是主从复制--读写分离还是分布式数据库结构)的重要性变得越来越明显,整合的多数据源有两种方式:分包和aop。分包以分包的方式来区分不同的数据源,也就是不同的包,连接不同的数据库。1、application的数据源配置##数据源1##driverClassName driver-class-namespring.datasource.test1.dr...转载 2019-01-25 16:32:14 · 2871 阅读 · 2 评论 -
spring cloud zuul的工作原理
ZuulProxyAutoConfiguration首先我们看一下zuul的配置类ZuulProxyAutoConfiguration, 这个类有一项工作是初始化Zuul默认自带的Filter,其中有一个Filter很重要, 它就是RibbonRoutingFilter. 它主要是完成请求的路由转发,接下来我们看下它的run方法:@Override public Object run(...转载 2019-01-15 09:01:14 · 994 阅读 · 0 评论 -
springboot 整合pagehelpeer
添加依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1....转载 2019-01-11 17:17:19 · 261 阅读 · 0 评论 -
springboot2.0整合logback日志
springboot本身内置了日志功能,然而想要输入想要的日志,并且输出到磁盘。依赖springboot的pom文件会引一个parent <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta...转载 2018-12-18 09:55:54 · 1692 阅读 · 0 评论 -
spring boot mybatis 支持oracle postgresql
背景:之前用spring boot+mybatis+oracle,现在要改成spring boot_mybatis+postgresql。为了想让一套代码即可以使用oracle库运行,也可以使用postgresql运行。所以需要进行代码修改。 访问postgresql<dependency> <groupId>org.postgresql</...转载 2018-12-12 13:33:00 · 1404 阅读 · 0 评论 -
spring cloud zuul的性能优化
TomcatTomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能有很大关系的。Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理。Tomcat默认配置的最大请求数是150,也就是说同时支持150个并发,并发越大,GC的负担也越大。Windows每个进程的线程数不能超过2000,Linux每个进程中的线程数不允许超过1000,在Ja...转载 2018-11-26 14:28:12 · 4273 阅读 · 0 评论 -
Spring Cloud Eureka 自我保护机制
Eureka Server在运行期间会去统计心跳失败比例在15分钟之内是否低于85%,如果低于85%,Eureka Server会将这些实例保护起来,让这些实例不会过期。因为当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运行的,此时是不应该移除这个微服务,所以引入自我保护机制。但是如果服务提供者真的非正常下线了,此时服务消费者就会拿到一个无效的服务...转载 2018-11-21 16:17:18 · 209 阅读 · 0 评论 -
spring boot @Controller与@RestController之间的区别
共同点都是用来表示Spring某个类是否可以接收HTTP请求。不同点@Controller标识一个spring类是Spring MVC controller处理器。@RestController是@Controller和@ResponseBody的结合体。@ResponseBody该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConver...转载 2018-11-16 13:17:49 · 180 阅读 · 0 评论 -
CommandLineRunner或ApplicationRunner接口
前言CommandLineRunner和ApplicationRunner接口是在容器启动成功后的最后一步回调。CommandLineRunner接口接口被用作将其加入spring容器中时执行其run方法,多个CommandLineRunner可以被同时执行在同一个spring上下文中并且捃顺序是以order注解的参数顺序一致。ApplicationRunner接口以上面接口的...转载 2018-11-15 08:37:07 · 280 阅读 · 0 评论 -
spring boot 系统异常统一处理
1.系统异常捕获@ControllerAdvice(annotations = {RestController.class})public class GlobalExceptionHandler { private Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class); /** ...转载 2018-11-13 08:33:36 · 926 阅读 · 0 评论 -
springboot jjwt
JJWT 全称Java Json Web Token。而JWT是一种在两方之间传输信息的方法,在jwt的主体中编码的信息被称为claims。jwt的扩展形式是json,因此每个claim都是json对象中的一个键。jwts增强了可验证性,接收都可以确定jwt没有通过验证签名来篡改。jwts可以加密签名成为jws,或加密成为jwe。jwts生成的jwt的结果有三个部分的字符串,每个部分由...转载 2018-11-01 11:09:34 · 1337 阅读 · 0 评论 -
spring cloud redis session共享
mvn依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependenc...转载 2018-11-01 10:15:59 · 1132 阅读 · 1 评论 -
jwt对spring cloud进行系统认证和服务鉴权
什么是jwt(json web token)jwt是一生中用来在网络上声明某种身份的令牌(TOKEN),它的特点是紧凑且自包含并且基于JSON,通过一些常用的算法对包含的主体令牌进行加密,安全性高。它通常有三个部分组成:头令牌(Header)、消息体(Payload)、签名(Signature).Header通常用来声明令牌的类型和使用的算法,Payload主要用来包含用户的一些令牌,Sign...转载 2018-10-30 11:56:37 · 1735 阅读 · 1 评论 -
spring cloud 断路器监控-Hystrix Dashboard
Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图表化界面。修改service-hi1、在pom工程文件引入相应的依赖<dependencies> <dependency> <groupId>org.springframework.cloud</groupId>...转载 2018-10-30 09:03:48 · 297 阅读 · 0 评论 -
spring cloud 服务链路追踪
简介Spring cloud Sleuth主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持zipkin,你只需要在pom文件中引入相应的依赖即可。1、span基本工作单元,span在不断的启动和停止,同时记录了时间信息,当你创建一相span,你必须在未来的某个时刻停止它。2、trace一系列span组成的一个树状结构。3、annotation用来及时记录一个事件...转载 2018-10-29 16:58:34 · 204 阅读 · 0 评论 -
spring cloud 分布式配置中心
简介在spring cloud中,有分布式配置中心组件spring cloud config,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程git仓库中,在该组件中,分两个角色,一是config server, 二是config client。实践1、构建config server(1)在原有工程上,创建一个spring-boot项目,取名为config-server...转载 2018-10-29 16:04:25 · 186 阅读 · 0 评论 -
springcloud 路由网关 - zuul
spring cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、ngnix),再到达服务网关(zuul集群),然后再到具体的服务。服务统一注册到高可用的服务注册中心集群,服务的所有配置文件由配置服务管理,配置服务的配置文件放在git仓库,方便开发人员随时改变配置。简介zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分。zuul有以...转载 2018-10-29 15:19:32 · 303 阅读 · 0 评论 -
springcloud-hystrix
为了保证高可用性,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导制服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后里,这就是服务故障的“雪崩”效应。HystrixNetflix开源了Hystrix组件,实现...转载 2018-10-29 14:02:48 · 189 阅读 · 0 评论 -
springcloud 服务消费者 - Feign
简介Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign只需要创建一个接口并添加注解,可以使用Feign注解和JAX-RS注解。Feign默认集成了Ribbon,并和Eureka结合。实践1、启动eureka-server,端口为8761.启动service-hi两次,端口分别为8762、8763.2、创建一个feign的服务。(1)新建一...转载 2018-10-29 13:36:52 · 160 阅读 · 0 评论 -
SpringCloud 服务消费者-rest+ribbon
spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign.ribbonribbon是一个负载均衡客户端,Feign默认集成了ribbon。ribbon已经默认实现了如下配置bean:(1) IClientConfig ribbonClientConfig: DefaultClientConfigImpl(2)IRule ribbo...转载 2018-10-29 13:14:43 · 151 阅读 · 0 评论 -
SpringCloud Eureka
springcloud eureka server 官方文档springcloud eureka client 官方文档springcloud中的region和zone1、背景用户量比较大或者用户地理位置分布范围很广的项目,一般都会有多个机房。这个时候如果上线springcloud服务,我们希望一个机房内的服务优先调用同一个机房的服务,当同一个机房的服务不可用的时候,再去调用其它机...转载 2018-10-29 10:05:32 · 244 阅读 · 0 评论 -
springboot 文件上传大小配置
第一种:application.properties中添加spring.http.multipart.maxFileSize=10MBspring.http.multipart.maxRequestSize=10MBmaxFileSize是单个文件大小maxRequestSize是设置总上传的数据大小。根据自己需求定义,MB,KB都 可以,大小写也都随意。注意在sprin...转载 2018-09-13 13:37:38 · 414 阅读 · 0 评论 -
SpringMVC 从controller跳转到另一个Controller
能正常跳转的写法如下:return "forward:aaaa/bbbb.do";return "redirect:aaaa/bbbb.do";return new ModelAndView("forward:bbbb.do", null);return new ModelAndView("redirect:bbbb.do", null); 最后欢迎大家访问我的个人网站:...转载 2018-08-13 16:02:55 · 345 阅读 · 0 评论 -
SpringBoot几种实时任务的实现方式
使用Timerpublic class TestTimer { public static void main(String[] args) { TimerTask timerTask = new TimerTask() { @Override public void run() { Sy...转载 2018-08-08 10:19:25 · 463 阅读 · 0 评论 -
spring boot 使用spring security oauth2保护rest接口
OAuth2角色(1)resource owner能够准许访问受保护资源的实体,当资源的所有者是一个人,它被称为终端用户。(2)resource server服务器托管受保护的资源,能够接受和响应使用访问令牌保护资源的请求。(3)client(4)authorization server服务器在成功认证后,发出访问令牌给客户端。OAuth2授权方式我们的保护资源...转载 2018-08-07 09:39:37 · 1671 阅读 · 0 评论 -
Spring Security中当已登录用户再次访问登录界面时,应跳转到home
@RequestMapping("/login") public String login(){ Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if(auth instanceof AnonymousAuthenticationToken){ return...转载 2018-08-02 09:32:02 · 2943 阅读 · 1 评论 -
Spring Security使用授权标签和注解
Spring Security的声明式安全授权有两种方式,一种是以url模式匹配的方式,另一种是方法上使用注解声明权限,这里重点说第二种。Spring Security默认是禁用注解的,要想开启注解,要在继承WebSecurityConfigurerAdapter的类加@EnableMethodSecurity注解,并在该类中将AuthenticationManager定义为Bean。@...转载 2018-08-01 10:58:23 · 8565 阅读 · 0 评论 -
React+SpringBoot项目部署
create-react-app由npm install 安装生成的,为什么单独列出这个呢?这个是关键,因为要创建react,最普通的方式就是通过命令create-react-app projectname生成名为projectname的项目,那么idea为了方便大家快速搭建,需要用到reate-react-app中的index.js文件用来创建react应用,所以不清楚自己的create-r...转载 2018-07-20 14:29:55 · 5242 阅读 · 0 评论 -
SpringBoot+MyBatis在控制台输出sql语句
1.如果使用application.properties在配置中添加:logging.level.com.looedu.mapper=debug格式:logging.level.Mapper类的包=debug 2.如果使用application.yml在配置中添加: logging: level: com: looedu: ...转载 2018-07-18 08:22:16 · 2957 阅读 · 0 评论 -
Spring Boot2.0整合MyBatis(自动生成注解方式)
<?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/转载 2018-06-30 18:22:11 · 650 阅读 · 1 评论 -
spring boot 2.0 WebMvcConfigurerAdapter过时
Springboot2.0使用的是Spring5.0,Spring5.0中WebMvcConfigurerAdapter算过时的,不再建议使用,那么我们可以使用WebMvcConfigurationSupport来代替。@Configurationpublic class TokenInterceptorConfig extends WebMvcConfigurationSupport {...转载 2018-07-04 16:58:47 · 351 阅读 · 0 评论 -
@EnableWebMvc,WebMvcConfigurationSupport,WebMvcConfigurer和WebMvcConfigurationAdapter区别
1.@EnableWebMvc/WebMvcConfigurationSuppport@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE})@Documented@Import({DelegatingWebMvcConfiguration.class})public @interface EnableWebMvc ...转载 2018-07-05 16:31:51 · 723 阅读 · 0 评论 -
java.math.BigInteger cannot be cast to java.lang.Long异常-MySQL相关
我的解决的方法就是升级依赖的mysql-connector-java的jar包。如下:<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</ver...转载 2018-07-11 08:42:26 · 1019 阅读 · 0 评论 -
Spring Boot学习--spring-boot-starter-parent
在官方文档的第三部分的13块讲述了引用的管理,官方推荐的是使用Maven和Gradle。我一直在用的是maven,而且使用maven有些优势–spring-boot-starter-parent,这个部件是maven独有的。这次我们从这里开始学习。Maven的用户可以通过继承spring-boot-starter-parent项目来获得一些合理的默认配置。这个parent提供了以下特性...转载 2018-07-11 14:51:20 · 971 阅读 · 0 评论 -
spring-boot-maven-plugin 插件的作用
pom文件中添加了“org.springframework.boot:spring-boot-maven-plugin”插件。在添加了该插件之后,当运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,使用“java -jar”命令就可以直接运行。可以在POM中,指定生成 的是Jar还是War <packaging>jar</packaging&...转载 2018-07-11 15:02:12 · 9946 阅读 · 0 评论 -
Spring Boot中的starter
starter主要用来简化依赖用的,比如我们之前做mvc时需要引入日志组件,那么需要去找到log4j的版本,然后引入,现在有了starter之后,直接用这个后,log4j就自动引入了,也不用关心版本这些问题。 部分starters的依赖:Starter(Group ID: org.springframework.boot) 传递依赖于 spring-boot-starter-...转载 2018-07-11 15:06:02 · 266 阅读 · 0 评论 -
Spring ApplicationContext
ApplicationContext 上图表示了ApplicationContext的依赖关系:(1)BeanFactory是Spring容器的依赖注入的基础,位于类结构树的项端,接口中最重要的方法就是getBean(String),得到特定名称的Bean对象。(2)ListableBeanFactory根据名称可以看出,相当于对一个容器中的内容相关信息的获取。...转载 2017-03-10 10:30:02 · 552 阅读 · 0 评论 -
Reactor
原文:http://blog.51cto.com/liukang/2090191Project Reactor与Spring是兄弟项目,侧重于Server端的响应式编程,主要artifact是reactor-core,这是一个基于Java 8的实现了响应式流规范(Reactive Streams specification)的响应式库。1.Flux与MonoReactor中发布者(Pu...转载 2018-06-05 17:51:54 · 3209 阅读 · 0 评论 -
SpringBoot中PropertySource注解
1.PropertySource注解加载指定的属性文件Spring框架提供了PropertySource注解,目的是加载指定的属性文件。@Component@PropertySource(value= {"classpath:config/jdbc-bainuo-dev.properties"},ignoreResourceNotFound=false,encoding="UTF-8...转载 2018-06-06 13:10:36 · 2017 阅读 · 0 评论