SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合

在处理完基本的部署后,SpringBoot已经可以实现将数据库数据回传到前端以JSON形式展示,但是SpringBoot要进行前端页面的跳转呢,在非前后端分离的项目中,页面跳转是交给后端来发布命令的,因此,我们一般是通过Thymeleaf框架与frameWorker框架两个执行使用,无论是springmvc或者SpringBoot都是样的处理方式!

1-----SpringBoot热部署:

SpingBoot不仅是对SpringMvc进行高度封装,其本身也对Tomcat进行了封装,实现了一键启动和关闭的作用,但是对于开发中我们的频繁修改代码,每次都要进行重启,这明显是很不友好的 ,因此SpringBoot的热部署插件出现了!

1.添加依赖

   分别添加依赖和插件

POM文件依赖包:
        
        
            org.springframework.boot
            spring-boot-devtools
            true
        


Plugin插件包:

            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    true
                    true
                
            

2.进行IDEA的设置

当部署完成后,需要启动IDEA的权限,使得它允许被程序调用.

---------File-Settings-Compiler-Build Project automatically或者直接搜索compiler

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第1张图片

-------注册按钮的启动:

对于2017.2.15版本或已经被中文版本化的IDEA版本,可能会出现命令1失效,如果失效请使用第二条命令:

命令1:请看第二条

命令2:ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running 

3.实现效果:

 效果1:修改类或者配置文件,应用会进行重启

效果2:修改静态页面,在thymeleaf已经被配置为cache缓存为false的情况下,应用会被重载(不是重启)


2--------配置Thyemleaf页面跳转

1 .添加依赖

SpringBoot支持想前端传递json数据,但是对于页面跳转则需要另外的设置以保证其能加载和识别HTML,追加依赖如下:

POM文件中依赖如下:
        
        
        
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        

 2 .页面使用

步骤1:在resources文件夹里面设置templates模块,设置如下:

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第2张图片

步骤2:进行application.yml文件的节点配置-->设置通用的必须参数

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第3张图片

步骤3:关闭服务器的缓存:

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第4张图片

步骤4:代码如何写

在后端通常采用如下:

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第5张图片

前端一般这么用:

   此处的js和bootstarp和validator都是在后端的resources配置好的,其语法网络上已经上五花八门的介绍,这里便不再多说,可自行搜索thymeleaf页面语法!




    登录
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

	

    


用户登录

 

 


3------Redis的部署

1.追加依赖

  新增Redis的依赖,用于与SpringBoot整合

 
        
            org.springframework.boot
            spring-boot-starter-redis
            1.4.5.RELEASE
        
        
            redis.clients
            jedis
            2.9.0
        

格式化存储:
		
		
			com.alibaba
			fastjson
			1.2.38
		

 2.配置

 需要增加配置类与依赖类将数据从,application.yml中读取出来

步骤1:application.yml文件的配置

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第6张图片

步骤2:添加依赖类并通过注解将数据给动态加载

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第7张图片

步骤3:配置注册Redis的JedisPoolConfig工厂类,本贴图为最基本配置

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第8张图片

步骤4:基本参数设置,调用工厂类并设置通过方法

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第9张图片

注意:该类就是获取jedis的连接并利用对该连接进行封装,然后通过注解@Service被加载到容器中,在其他类中以注解形式被调用

步骤5:调用实例
SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第10张图片

 封装的方法被使用:

 


4-----JSR303验证框架

JSR303框架提供的是一套通过注解代理高高频校验参数的合法性的框架,可以在一定程度上简化代码并减少业务入侵!并简化开发,此外JSR303还提供一套自定义的校验注解方法,用户可以根据自己的需要在自定义适合自己的注解!在开发中。在开发中为了防止过多的注解,导致代码可读性太差,我们一般使用选择将代码封装在一个工具类!

1.追加依赖:

 POM文件依赖:
        
        
            org.springframework.boot
            spring-boot-starter-validation
        

2.注解的想使用

类使用方法1:对于参数的校验,主要是来自于前端回传回来的参数与后端回传出去,接口传递出去的数据,因此我们可以在vo类中进行设置!

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第11张图片

类使用方法2:当框架自身提供的注解不满足我们的需求或者不满足我们的逻辑,这个时候可以选择自定义注解,如下:

步骤1:创建 @Interface接口类 。寻找框架提供注解并获取其注解接口类的统一标记语言,维护到自己的@Interface接口上

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {IsMobileValidator.class })//表示调用的自定义校验器
public @interface  IsMobile {
	
	boolean required() default true;//必备的字段信息,表示必传,当前默认为空

	String message() default "手机号码格式错误";//表示错误时候的信息

	Class[] groups() default { };

	Class[] payload() default { };
}

步骤2:创建注解实现类


//自定义的数值校验器
public class IsMobileValidator implements ConstraintValidator {
	//实现Constrain参数

	private boolean required = false;//是否必填

	//获取刚刚定义器里面的required是否允许为空,注解
	public void initialize(IsMobile constraintAnnotation) {
		required = constraintAnnotation.required();
	}

	public boolean isValid(String value, ConstraintValidatorContext context) {
		if(required) {
			return ValidatorUtil.isMobile(value);
		}else {//非必填,判断为空则true
			if(StringUtils.isEmpty(value)) {
				return true;
			}else {//有数据则判断规则
				return ValidatorUtil.isMobile(value);
			}
		}
	}

}

当字段回传归来,则可以在vo类里面使用该注解进行注解

步骤3:ValidUtils的内容如下:


public class ValidatorUtil {
	
	private static final Pattern mobile_pattern = Pattern.compile("1\\d{10}");//正则表达式

	//手机校验
	public static boolean isMobile(String src) {
		if(StringUtils.isEmpty(src)) {
			return false;
		}
		Matcher m = mobile_pattern.matcher(src);
		return m.matches();
	}
	
//	public static void main(String[] args) {
//			System.out.println(isMobile("18912341234"));
//			System.out.println(isMobile("1891234123"));
//	}
}

该工具类可以用于后期,各类参数校验与封装,适用于将对参数的各类校验给统一放置起来,在不同场景下使用~~~~~~~~~

SpringBoot+热部署+Redis+Thymeleaf+JSR303校验框架的整合_第12张图片


 

 

 

你可能感兴趣的:(通用技术,前端技术)