202010-08 图解如何在Spring Boot中使用JSP页面 一、创建webapp目录在src/main下创建webapp目录,用于存放jsp文件。这就是一个普通的目录,无需执行MarkDirectoryAs二、创建jsp1、指定web资源目录在springboot工程中若要创建jsp文件,一般是需要在src/main下创建webapp目录,然后在该目录下创建jsp文件。但通过Alt+Insert发现没有创建jsp文件的选项。此时,需要打开ProjectStructrue窗口,将webapp目录指定为web资源目录,然后才可以创建jsp文件。指定后便可看到下面的窗口... 继续阅读 >
202010-08 Spring Boot日志技术logback原理及配置解析 一、logback日志技术介绍SpringBoot中使用的日志技术为logback。其与Log4J都出自同一人,性能要优于Log4J,是Log4J的替代者。在SpringBoot中若要使用logback,则需要具有spring-boot-starter-logging依赖,而该依赖被spring-boot-starter-web所依赖,即不用直接导入spring-boot-starter-logging依赖。二、添加配置属性该文件名为logback.xml,且必须要放在src/main/resources类路径下内容如下:<?xmlversion="1.0"encoding... 继续阅读 >
202010-08 Spring Boot使用Servlet及Filter过程详解 在SpringBoot中使用Servlet,根据Servlet注册方式的不同,有两种使用方式。若使用的是Servlet3.0+版本,则两种方式均可使用;若使用的是Servlet2.5版本,则只能使用配置类方式一、Servlet3.0+版本方式(1)创建工程07-servlet(2)导入依赖<?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="ht... 继续阅读 >
202010-08 SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程图解 配置嵌入式Servlet容器SpringBoot默认使用Tomcat作为嵌入式的Servlet容器;问题?1)、如何定制和修改Servlet容器的相关配置;1、修改和server有关的配置(ServerProperties【也是EmbeddedServletContainerCustomizer】);server.port=8081server.context-path=/crudserver.tomcat.uri-encoding=UTF-8//通用的Servlet容器设置server.xxx//Tomcat的设置server.tomcat.xxx2、编写一个EmbeddedServletContainerCustomizer:嵌入式的S... 继续阅读 >
202010-08 Spring-Validation 后端数据校验的实现 前言最近看到很多童鞋在项目中的对请求参数的校验都用的if来判断各参数的属性,如:if(StringUtils.isBlank(username)){returnRR.exception("账号不能为空");}if(StringUtils.isBlank(password)){returnRR.exception("密码不能为空");}if(StringUtils.isBlank(realName)){returnRR.exception("姓名不能为空");}......每个参数都需要这样一个个去校验null,返回对应信息,代码就像叠罗汉一样~~,在此,楼主强烈推荐一个神器... 继续阅读 >
202010-08 基于Spring boot @Value 注解注入属性值的操作方法 本文主要介绍Spring@Value注解注入属性值的使用方法的分析,文章通过示例代码非常详细地介绍,对于每个人的学习或工作都有一定的参考学习价值在使用spring框架的项目中,@Value是经常使用的注解之一。其功能是将与配置文件中的键对应的值分配给其带注解的属性。在日常使用中,我们常用的功能相对简单。本文使您系统地了解@Value的用法。@Value注入形式根据注入的内容来源,@Value属性注入功能可以分为两种:通过配置文件进行... 继续阅读 >
202010-08 浅谈spring security入门 一介绍本节给知识追寻者给大家带来的是springSecurity入门篇,主要是简述下springSecrurity的启动原理和简单的入门搭建;二核心模块介绍spring-security-core;包含核心身份验证和access-contol类和接口,远程支持和基本配置AP;spring-security-web:web,url登陆验证和访问控制;spring-security-config:支持xml或者java注解配置;当然其模块远不止这些,比如CAS,ALC,Aspects,OpenI等等,对于入门我们了解核心即... 继续阅读 >
202010-08 Spring Boot定时器创建及使用解析 创建定时器因为项目需要定时在后端执行任务刷新数据,不需要从前端调用接口,所以需要使用定时器。基于注解方式@Scheduled默认为单线程。packagecom.ruanshuai.demo.util;importcom.ruanshuai.demo.config.ConfigConsts;importorg.springframework.scheduling.annotation.EnableScheduling;importorg.springframework.scheduling.annotation.Scheduled;importorg.springframework.stereotype.Component;/***@authorruanshu... 继续阅读 >
202010-08 Spring boot配置多数据源代码实例 因项目需要在一个应用里从两个数据库取数,所以需要配置多数据源,网上找了好多方法才启动成功,整理如下。注意两个数据源的repository文件名不能相同,即使在不同的文件夹下,否则系统启动会报错。配置文件spring.datasource.primary.url=***spring.datasource.primary.username=***spring.datasource.primary.password=***spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driverspring.datasource.second.url=***sp... 继续阅读 >
202010-08 Spring @CrossOrigin 注解原理实现 现实开发中,我们难免遇到跨域问题,以前笔者只知道jsonp这种解决方式,后面听说spring只要加入@CrossOrigin即可解决跨域问题。本着好奇的心里,笔者看了下@CrossOrigin作用原理,写下这篇博客。先说原理:其实很简单,就是利用spring的拦截器实现往response里添加Access-Control-Allow-Origin等响应头信息,我们可以看下spring是怎么做的注:这里使用的spring版本为5.0.6我们可以先往RequestMappingHandlerMapping的initCorsCo... 继续阅读 >
202010-08 Jenkins Pipeline 部署 SpringBoot 应用的教程详解 一.安装依赖包yuminstall-ywgetyuminstall-ygcc-c++yuminstall-yzlib-develperl-ExtUtils-MakeMakeryum-yinstallcurl-develexpat-develgettext-developenssl-develzlib-develgccperl-ExtUtils-MakeMakeryuminstall-yopenssh-clientsyuminstall-yfontconfig二.环境准备1.安装JAVA环境yum-yinstalljava-1.8.0-openjdk#检测是否安装成功java-version修改/etc/profile文件,添加JAVA_HOMEvi/etc/prof... 继续阅读 >
202010-08 详解使用Spring的BeanPostProcessor优雅的实现工厂模式 最近学习Spring的源码,发现一个利器BeanPostProcessor。这个后置处理器可以在bean初始化前后对bean进行操作。我们可以在初始化的时候对自己想要的bean进行缓存,进而实现自己需要处理的逻辑。背景当我们需要根据类型调用接口不同实现的时候,我们可以使用工厂模式实现。下面说下博主遇到过的两次需要使用工厂的场景。场景一:当有一个模块,我们需要根据数据库的类型实现不同的的sql。我们此时需要定义一个接口然后每一种数据库实... 继续阅读 >
202010-08 Spring Boot Admin 进行项目监控管理的方法 一、SpringBootAdmin的概念 SpringBootAdmin是一个开源社区项目,用于管理和监控SpringBoot应用程序。应用程序作为SpringBootAdminClient向为SpringBootAdminServer注册(通过HTTP)或使用SpringCloud注册中心(例如Eureka,Consul)发现。UI是AngularJs的应用程序,展示SpringBootAdminClient的Actuator端点上的一些监控。 可以通过SpringBootAdmin浏览... 继续阅读 >
202010-08 使用Java注解模拟spring ioc容器过程解析 使用注解,简单模拟springioc容器。通过注解给对象属性注入值。项目结构annotation包,用于存放自定义注解Component注解表示该类为组件类,并需要声明名字packagepriv.haidnor.annotation;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;/***组件*/@Target(value=ElementType.TYPE)@Retention(value=Re... 继续阅读 >
202010-08 全面解析Spring Security 内置 Filter 1.前言上一文我们使用SpringSecurity实现了各种登录聚合的场面。其中我们是通过在UsernamePasswordAuthenticationFilter之前一个自定义的过滤器实现的。我怎么知道自定义过滤器要加在UsernamePasswordAuthenticationFilter之前。我在这个系列开篇说了SpringSecurity权限控制的一个核心关键就是过滤器链,这些过滤器如下图进行过滤传递,甚至比这个更复杂!这只是一个最小单元。SpringSecurity内置了一些过滤器,他们... 继续阅读 >
202010-08 全面解析Spring Security 过滤器链的机制和特性 1.前言过滤器作为SpringSecurity的重中之重,我们需要了解其中的机制。这样我们才能根据业务需求的变化进行定制。今天来探讨一下SpringSecurity中的过滤器链机制。2.SpringSecurity过滤器链客户端(APP和后台管理客户端)向应用程序发送请求,然后应用根据请求的URI的路径来确定该请求的过滤器链(Filter)以及最终的具体Servlet控制器(Controller)。从上图我们可以看出SpringSecurity以一个单Filter(Filter... 继续阅读 >