![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot系列
月亮的-影子
努力学习,相信未来
展开
-
异步任务、邮件任务、定时请求任务
异步任务、邮件任务、定时请求任务异步任务:就是如果我们这个服务是需要大量的时间等待,我们可以把它交给一个线程来处理,然后我们的主线程处理主要业务这样可以提高用户的体验。在springboot里面使用@EnableAsync来开启异步注解,这个注解放在springbootapplication上面就可以了,@Async放在需要异步处理的方法任务上代码(异步任务)@Servicepublic class AsyncService { @Async public void hello()原创 2021-02-11 00:01:46 · 89 阅读 · 0 评论 -
Swagger入门
Swagger入门为什么要学习swagger?swagger是什么?为了分离前后端交互,而且在接口文档方面更具有实时性,能够及时更新接口文档,并且可以把接口和数据通过视图ui的方式呈现出来。而swagger就是能够做这个文档的工具,能实时更新。...原创 2021-02-10 21:19:45 · 67 阅读 · 1 评论 -
Shiro与thymeleaf的整合
Shiro与thymeleaf的整合直接讲一下步骤导入jar导入命名空间,使用shiro:hasPermission=""来判断用户是否拥有这一个权限。在Config上面导入ShiroDialect的Bean对象为登录的按钮设置好根据用户是否已经存在来决定是否显示按钮。代码(依赖) <dependency> <groupId>com.github.theborakompanioni</groupId> &原创 2021-02-10 12:43:12 · 427 阅读 · 0 评论 -
Shiro请求授权实现
Shiro请求授权实现请求授权的关键方法是realm下面的doGetAuthorizationInfo,每次我们需要授权时候都需要经过这一个方法。我们也需要在ShiroFilterFactoryBean下面设置好进入什么链接需要什么样的权限filterChainDefinitionMap.put("/add",“perms[user:add]”);在授权我们需要用到一些pricipal,而这些pricipal通常会存储在subject上面,我们可以通过SecurityUtils,来获得subject,原原创 2021-02-10 12:14:17 · 116 阅读 · 0 评论 -
Shiro与Mybatis的整合
Shiro与Mybatis的整合直接讲步骤导入依赖创建pojo,mapper,mapper.xml创建好yaml配置好mybatis的配置测试运行主要是记录依赖,以后来取。代码(依赖)<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <v原创 2021-02-09 23:44:40 · 91 阅读 · 0 评论 -
Shiro的登录拦截和用户认证
Shiro的登录拦截和用户认证登录拦截需要使用ShiroFilterFactoryBean的setFilterChainDefinitionMap(Map<String, String> filterChainDefinitionMap)来进行对我们输入的map进行拦截。其中key就是需要拦截的对象,value是拦截的处理方式。所以登录拦截非常简单只需要在我们添加的组件里面增加一些简单的方法就可以了。用户认证也非常简单。我们使用的也是ShiroFilterFactoryBean也就是用户,需原创 2021-02-09 22:10:24 · 344 阅读 · 1 评论 -
Shiro整合springboot环境搭建
Shiro整合springboot环境搭建直接来说说步骤吧导入依赖写Shiro配置类和Realm自定义数据连接写控制器调试代码(依赖)<dependencies> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId>原创 2021-02-09 17:52:38 · 51 阅读 · 0 评论 -
Shiro入门
Shiro入门shiro入门中的quickstart的执行步骤。首先去到官网或者github去找一下shiro的quickstart然后导入quickstart中的pom下面的jar包把resouces下面的配置文件复制过来把java下的文件也复制然后执行就可以了其中比较关键的方法Subject currentUser = SecurityUtils.getSubject();获取当前用户Session session = currentUser.getSession();获取会话原创 2021-02-09 17:06:05 · 57 阅读 · 0 评论 -
SpringSecurity记住我以及参数的传递
SpringSecurity记住我以及参数的传递记住我其实原理非常简单就是通过设置一个cookie就可以了。然后参数传递,就是以防我们的前端页面不同,和name设置与原来的login页面不一样而做的事情。只需要在后面链式编程加上一点东西就能改变。代码 //没有默认权限就自动跳到登录页面,最后的处理还是要交给login http.formLogin().loginPage("/toLogin").usernameParameter("user").passwordParameter("p原创 2021-02-09 15:44:35 · 333 阅读 · 1 评论 -
SpringSecurity的注销
SpringSecurity的注销注销需要在config里面重写方法configure,而且需要在最后加上http.logout.在学习注销的过程中接触到了 CSRF概念CSRF跨站点请求伪造(Cross—Site Request Forgery)。简单来说就是通过一些手段利用你的名义来发送请求来达到它的目的。比如现在你的银行网站是需要通过一些请求来转账,但是在转账之前是需要验证你的身份的,而黑客就利用这一点,通过一些广告来让你点进去,然后如果这个时候你刚进去过银行的网站,session还没有消失,他就原创 2021-02-09 15:17:57 · 306 阅读 · 1 评论 -
Spring security入门
Spring security入门首先需要知道的是什么是springsecurity,它其实是一个能为系统提供安全访问解决方案的安全框架。想想以前我们是怎么对权限进行控制的,是不是要写过滤器,拦截器?写这些原生代码是非常耗费时间的,所以spring security就是为解决这个问题,来实现认证和授权。下面给出给出简单步骤:1.导包security,thymeleaf,关闭缓存2. 导入资源3. 自己根据写一个Config类继承WebSecurityConfigurerAdapter,并且需要重写原创 2021-02-09 12:39:54 · 95 阅读 · 0 评论 -
Mybatis整合
Mybatis整合这个相对来说比较简单。说说spring和springboot的整合区别吧。springboot已经不需要配置那么多文件了,也就是不需要mybatis-config,但是spring需要。springboot可以通过application配置文件和property类的配置使用来完成mybatis-config的配置。我们绑定mapper还是需要单独写出来一个文件,而且需要在application里面指定位置,其实就是以前的mybaitis-config。很不同的地方就是所有对象的创建都不需原创 2021-02-07 17:48:30 · 186 阅读 · 0 评论 -
jdbc整合
jdbc整合我们在jdbc的整合里面需要配置好yaml文件,写好username,password这些数据,连接数据库,DataSource是会自动注册的不需要我们注册。如果我们想要操作数据库,只需要使用jdbcTemplate对象就可以了。可能遇到的坑:配置文件的serverTimeZone要配好。url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&useJDBCCompliantTimezoneShift=true&u原创 2021-02-07 15:35:05 · 218 阅读 · 0 评论 -
国际化的原理
国际化的原理国际化其实就是通过我们读取配置文件,然后根据配置文件给视图的文字赋值。然后我们需要解决的一件事情就是如何来找到这个配置文件,还有就是根据什么来判断我们需要使用的是什么配置文件。其实这里其中最重要的就是解析器,那么是什么解析器来分析我们需要的语言呢,它又在哪里分析呢?其实我们分析语言的解析器不止一个,但是通常我们会在请求头里面设置好我们要访问的语言格式,然后通过LocaleResolver解析器来进行分析,然后给Locale赋值,最后根据Locale的值去专门存储这些文件的i18n里面寻找,然后原创 2021-02-07 11:22:48 · 166 阅读 · 1 评论 -
员工管理系统(Springboot)
员工管理系统(Springboot)直接来讲一下步骤和可能会踩的坑第一阶段首先创建pojo,employee和department创建两个dao类,直接管理数据。都写上添加和删除,根据id查询的方法然后启用thymeleaf(必须要启用,而且导入依赖),关闭缓存(为了实时更新),然后修改页面的链接使用th:xx:"@{xx}"国际化,需要我们自己重写一下LocaleResolver来根据请求参数来对不同的语言进行处理。通常处理信息的是MessageSourceAutoConfiguration原创 2021-02-06 23:24:32 · 890 阅读 · 0 评论 -
MVC配置原理
MVC配置原理我们可以通过自己来接管Mvc的实现,只需要创建一个类实现WebMvcConfigurer,并且写上一个自己想要实现的视图解析器就可以了。这里给了我们一个什么样的思路呢?我们会发现springboot里面很多组件都是可以由我们来定义然后交给springboot来自动装配。springboot的自动装配的功能就是这么强大。第二点就是当我们要实现一个功能的时候我们需要参照之前的是怎么写的,然后才能够自己去写。比如写视图解析器,我们就可以参照它实现的原理,看看官方文档给出的ContentNegoti原创 2021-02-06 12:15:45 · 123 阅读 · 0 评论 -
Thymeleaf简单入门
Thymeleaf简单入门Thymeleaf是使用springboot比较常用的模板。其实它就像是以前的jsp展示视图的。也是能够接收后端的数据,然后通过渲染展示到页面。它的特点就是可以通过自带的解析器,来帮助springboot项目定位这个资源的位置,通常我们会放在templates下面,而解析器也是把它定位到这里通过加上前后缀。类似于以前mvc里面的视图解析器。它的使用格式通常是th:xxx="${??}"使用步骤:1.去官方文档找到启动器,然后放到pom里面2.导入thymeleaf的依赖原创 2021-02-05 20:18:29 · 95 阅读 · 0 评论 -
SpringBoot静态资源的处理
SpringBoot静态资源的处理静态资源的处理过程原本是在Adapter的,但是由于版本的更新,现在静态资源的处理移动到了EnableWebMvcConfiguration这个类下面去,而且不再像以前那样直接判断,然后映射,现在变成了执行方法执行这两个路径的映射,本质上还是一样的。其中StaticPathPattern的/**其实就是直接能够映射到项目的resouces下面的resouces、static、和public上面去。他们的优先级是resouces>static>public如原创 2021-02-05 18:05:38 · 82 阅读 · 0 评论 -
SpringBoot自动装配再解
SpringBoot自动装配再解上一次的springboot的自动装配原理理解,了解了是哪些注解起了作用,哪些类做了什么,接下来的自动装配原理理解就不只是类做了什么,注解起了什么作用。我们更需要知道他们的联系。首先来思考一下为什么我们的application.yaml可以直接来修改配置信息?这些配置信息是怎么样进行传递的?spring-factories里面和我们现在所使用的application.yaml有着什么样的联系?我们在application.yaml里面配一些值,ctrl点击一下他们的变量原创 2021-02-05 16:31:55 · 91 阅读 · 0 评论 -
多配置环境和执行顺序
多配置环境和执行顺序我们在开发中肯定有的时候需要使用不同的配置环境可能是test,也可能是dev。所以我们就需要知道配置文件在项目里面的不同位置的执行顺序。优先级1:项目路径下的config文件夹配置文件优先级2:项目路径下配置文件优先级3:资源路径下的config文件夹配置文件优先级4:资源路径下配置文件第二点就是yaml的第二种优秀的地方,就是他可以把配置环境放到一个文件里面去。我们只需要使用一个文件,修改active的环境就能够知道现在到底是什么配置环境。而properties相对麻烦,需原创 2021-02-05 15:16:02 · 142 阅读 · 0 评论 -
yaml的语法和简单使用
yaml的语法和简单使用首先讲讲yaml比起properties好的地方。它能够很轻松的定义一个对象,而且语法也很方便。语法规则就是 属性名:(空格) xxx而且别忘了在你所需要创建的类对象上面加上注解@ConfigurationProperties(prefix = “person”)下面给出实例(对象的实例):person: name: "好人" age: '2' list: ['1','2','3',"aa"] map: {"name": "haoren","people":原创 2021-02-05 14:20:11 · 148 阅读 · 0 评论 -
SpringBoot的run原理
SpringBoot的run原理(狂神老师的分析,加上我自己的源码分析学习)return run(new Class[]{primarySource}, args);首先我们发现springboot的run的第一个方法是传递本类和参数。return (new SpringApplication(primarySources)).run(args);然后就是初始化SpringApplication,在这个初始化的过程中它做了几件事,①初始化变量②推断应用的类型是普通项目还是web项目③加载所有可用初始原创 2021-02-05 10:48:08 · 242 阅读 · 0 评论 -
SpringBoot自动装配原理
SpringBoot自动装配原理pom.xmlpom.xml的父依赖有我们所需要的所有版本号,它管理了所有的版本信息starter启动器为我们启动所需的场景,简单来说就是配置好环境,导入所有所需要的组件和jar包主启动器首先主启动器中的@SpringBootConfiguration,其实也是一个@Configuration和@Component,也就是说主启动类其实就是一个组件和配置文件@SpringBootConfiguration里面有一个@ComponentScan,可以用于原创 2021-02-04 18:52:45 · 107 阅读 · 0 评论 -
SpringBoot的入门案例
SpringBoot的入门案例可以去到springboot的官网直接打包一个springboot的入门案例,然后使用idea执行就可以了。springboot非常方便。现在我印证了两个问题①内置tomcat ②不需要xml文件,它可以自动把spring容器和我们想要创建的对象使用注解的方式注册。③springboot的主文件有@Component,而且还是一个@Configuration,内置扫描。需要注意问题:如果你有多个maven,一定要在setting里面设置自己常用的那个package的时原创 2021-02-04 16:58:04 · 72 阅读 · 0 评论 -
SpringBoot入门了解
SpringBoot入门了解首先在学习springboot的时候我们需要了解为什么要出现这一门技术它和什么技术相关联。它的出现带来了什么解决了什么样的问题如果没有这一项技术之前是怎么做的现在就需要逐步探究。但是后面的几个问题是我暂时还没办法回答的,所以在这一系列的文章我会不断穿插自己对问题的理解和分析。首先第一点为什么要出现这一门技术,什么是springboot?springboot这一门技术是为了简化spring开发,集成大量的框架是的依赖包的版本冲突和引用不稳定性得到解决,而且它继原创 2021-02-04 15:31:12 · 64 阅读 · 0 评论