![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
《深入浅出spring boot 2.x》
内容整理自《深入浅出spring boot 2.x》,还有一些工作中遇到的bug总结
外外外
这个作者很懒,什么都没留下…
展开
-
BeanNotOfRequiredTypeException: Bean named ‘stringRedisTemplate‘...
报错:[ERROR] Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisUtils': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean原创 2021-03-30 11:49:12 · 531 阅读 · 1 评论 -
shiro学习总结
shiro内容主要有两大部分:认证(你之前登录了没)和授权(你有没有权限登录)认证的原理:过滤器Filter,入囗DelegatingFilterProxy,spring的一个过滤器DelegatingFilterProxy->ShiroFilterFactoryBean->自定义过滤器(也可使用shiro自带过滤器)->subject.login()授权的原理:springAop实现的代理(现在都用注解来配置),引入AuthorizationAttributeSourceAdv原创 2021-03-05 17:56:28 · 137 阅读 · 0 评论 -
SSM项目整合Swagger常见问题
访问http://docker32-logistics.qipeipu.net/swagger-ui.html报503或404或不显示内容排查问题方向:1.看web.xml文件中DispatcherServlet配置,如<servlet-mapping> <servlet-name>BOSS MOBILE APP</servlet-name> <url-pattern>/*</url-pattern></servlet-mapp原创 2021-03-04 17:31:55 · 527 阅读 · 1 评论 -
springboot学习14——整合shiro
在idea里建一个springboot项目代码结构:懒得建表,所有使用了mongodb1.application.propertiesserver.port=8090#在Spring Boot中配置mongodb:spring.data.mongodb.host=127.0.0.1#spring.data.mongodb.username=spring#spring.data.mongodb.password=123456spring.data.mongodb.port=27017s原创 2020-06-04 22:12:33 · 189 阅读 · 0 评论 -
springboot学习13——springmvc拦截器解析
八、拦截器当请求来到DispatcherServlet时,它会根据HandlerMapping的机制找到处理器,这样就会返回一个HandlerExecutionChain对象,这个对象包含处理器和拦截器。这里的拦截器会对处理器进行拦截,这样通过拦截器就可以增强处理器的功能。1.拦截器的设计首先所有的拦截器都需要实现HandlerInterceptor接口。HandlerInterceptor源码package org.springframework.web.servlet;/**** imp原创 2020-06-12 17:51:46 · 169 阅读 · 0 评论 -
springboot学习12——springmvc(下)
五、数据模型Spring MVC允许控制器自定义模型和视图(ModelAndView),其中模型是存放数据的地方,视图则是展示给用户。先来讨论数据模型的问题。数据模型的作用是绑定数据,为后面的视图渲染做准备。首先看下Spring MVC使用的模型接口和类:在类ModelAndView中存在一个ModelMap类型的属性,ModelMap继承了LinkedHashMap类,所以它具备Map接口的一切特性,除此之外它还可以增加数据属性。在Spring MVC的应用中,如果在控制器方法的参数中使用Mod原创 2020-06-12 17:11:24 · 216 阅读 · 0 评论 -
springboot学习11——springmvc(中)
一、处理器映射Web工程使用Spring MVC,在启动阶段会将注解@RequestMapping所配置的内容保存到处理器映射(HandlerMapping)机制中去,然后等待请求的到来,通过拦截请求信息与HandlerMapping进行匹配,找到对应的处理器(它包含控制器的逻辑),并将处理器及其拦截器保存到HandlerExecutionChain对象中,返回给DispatcherServlet,这样DispatcherServlet就可以运行它们了。HandlerMapping:将请求定位到具体的原创 2020-06-12 15:56:05 · 166 阅读 · 0 评论 -
springboot学习10——springmvc(上)
Spring MVC定位于一个较为松散的组合,展示给用户的视图(View)、控制器返回的数据模型(Model)、定位视图的视图解析器(ViewResolver)和处理适配器(HandlerAdapter)等内容都是独立的。换句话说,通过Spring MVC很容易把后台的数据转换为各种类型的数据。例如,Spring MVC可以十分方便地转换为目前最常用的JSON数据集,也可以转换为PDF、Excel和XML等。加之Spring MVC是基于Spring基础框架派生出来的Web框架,所以它天然就可以十分方便原创 2020-06-11 23:16:59 · 708 阅读 · 0 评论 -
springboot学习9——整合mongodb
文档数据库——MongoDB背景:Redis是一个每秒能够执行10万次以上操作的NoSQL。这个速度远超数据库,可以极大地提高互联网系统的性能,但是它有一些致命的缺陷,其中最为严重的就是计算功能十分有限,例如,在一个10万数据量的List中,我需要满足特定条件的元素在集合或者列表中,我们只有先把元素取出,才能通过条件筛选一个个得到想要的数据,这显然存在比较大的问题。虽然可以通过Lua脚本去完善,但这样开发者的工作量就大大地增加了。因此,对于那些需要缓存而且经常需要统计、分析和查询的数据,使用redi原创 2020-06-03 23:46:34 · 453 阅读 · 0 评论 -
springboot学习8——整合redis
redis与spring结合:https://blog.csdn.net/qq_39172525/article/details/106342853redis与与springboot结合:https://blog.csdn.net/qq_39172525/article/details/106343275redis与springboot结合(事务,管道,Lua)https://blog.csdn.net/qq_39172525/article/details/106343324...原创 2020-06-03 23:17:14 · 99 阅读 · 0 评论 -
Redis学习10——与springboot结合(缓存注解操作Redis)
使用Spring缓存注解操作Redis为了进一步简化Redis的使用,Spring还提供了缓存注解,使用这些注解可以有效简化编程过程。一、缓存管理器和缓存的启用Spring在使用缓存注解前,需要配置缓存管理器,如缓存类型、超时时间等。Spring可以支持多种缓存的使用,提供了缓存处理器的接口CacheManager和与之相关的类,使用Redis,主要就是以使用类RedisCacheManager为主。在Spring Boot的starter机制中,允许我们通过配置文件生成缓存管理器,它提供的配置原创 2020-05-25 22:20:56 · 333 阅读 · 0 评论 -
Redis学习9——与springboot结合(事务,管道,Lua)
事务:不多解释,保证数据的一致性。管道:在需要大批量执行Redis命令的时候,这样可以极大地提升Redis执行的速度。Lua语言:在高并发的场景中,往往我们需要保证数据的一致性,利用Redis执行Lua的原子性来达到数据一致性的目的。一、使用Redis事务在Redis中使用事务,命令组合是watch… multi…exec,在spring中可以使用SessionCallback接口来实现。watch:监控Redis的一些键;multi:开始事务,开始事务后,该客户端的命令不会马上被执行,而是存放原创 2020-05-25 22:09:29 · 460 阅读 · 1 评论 -
springboot学习7——事务
Spring声明式事务的使用:使用AOP的思维,执行SQL的代码织入Spring约定的数据库事务的流程中。一、Spring声明式数据库事务约定在讲解Spring AOP时,只要我们遵循约定,就可以把自己开发的代码织入约定的流程中,减少大量的冗余代码,更加集中于业务的开发。@Transactional:通过此注解标注告诉Spring在什么地方启用数据库事务功能。可以标注在类或者方法上,当它标注在类上时,代表这个类所有公共(public)非静态的方法都将启用事务功能。此注解还允许配置许多的属性,如事务的原创 2020-05-25 21:34:46 · 424 阅读 · 0 评论 -
springboot学习6——整合MyBatis
整合MyBatis框架目前Java持久层最为主流的技术已经是MyBatis,它比JPA和Hibernate更为简单易用,也更加灵活。一、MyBatis简介MyBatis:基于一种SQL到POJO的模型,需要我们提供SQL、映射关系(XML或者注解)和POJO。其中SQL和POJO的映射关系,它提供了自动映射和驼峰映射等,使开发者的开发工作大大减少;MyBatis的配置文件包括两个大的部分:一是基础配置文件,一个是映射文件(可以使用注解)。1.引入关于MyBatis的starter<!-原创 2020-05-22 20:45:56 · 322 阅读 · 0 评论 -
springboot学习5——Datasource
一、配置数据源1.引入了JPA的依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>Spring Boot使用Hibernate实现JPA,所以我们就可以在不使用任何配置数据库的情况下运行Spring Boot工程了原创 2020-05-22 20:34:44 · 950 阅读 · 1 评论 -
springboot学习4——AOP
一、AOP的概念Spring AOP:一种约定流程的编程,即按照一定的规则,将代码织入事先约定的流程中。可以简化代码,最为典型的应用实际就是数据库事务的管控。想像一下一个sql的执行过程:•打开数据库连接,对其属性进行设置;•执行SQL语句;•如果没有异常,则提交事务;•如果发生异常,则回滚事务;•关闭数据库事务连接。获取数据库事务连接、事务操控和关闭数据库连接的过程,都需要使用大量的try … catch … finally…语句去操作,而这些工作都可以通过AOP简化。AOP可以实现业务原创 2020-05-21 23:55:00 · 676 阅读 · 0 评论 -
springboot学习3——约定编程
这一章主要是通过约定编程来实现AOP,以此来了解AOP究竟是什么,全篇就是一个自己实现的AOP:1.接口HelloService:有一个sayHello的方法,其中的参数name是名字,这样就可以对该名字说hello了package com.springboot.chapter4.service;public interface HelloService { public void sayHello(String name);}2.实现类HelloServiceImpl:方法sayH原创 2020-05-21 23:34:37 · 234 阅读 · 0 评论 -
springboot学习2——IoC(下)
六、条件装配BeanBean初始化前,对基属性进行一些校验,不满足校验时就不去装配数据源。@Conditional注解+一个实现了Condition接口(org.springframework.context.annotation.Condition)的类,例子:使用属性初始化数据库连接池:加入了@Conditional注解,并且配置了类DatabaseConditional@Bean(name = "dataSource", destroyMethod = "close")@Conditiona原创 2020-05-20 22:17:05 · 270 阅读 · 1 评论 -
springboot学习1——IoC(上)
最近在看《深入浅出Spring Boot2.x》,把学习的知识点汇总下,这样就不容易忘记。Springboot可以理解为Spring的注解版,所以学习Springboot 从学习Spring开始。Spring两个核心理念:一个是控制反转(Inversion of Control,IoC)一个是面向切面编程(Aspect Oriented Programming,AOP)。下面先来学习下控制反转:一、IoCIoC:一种通过描述来生成或者获取对象的技术,IoC容器是Spring的核心。在Spri原创 2020-05-20 22:06:14 · 239 阅读 · 0 评论