Spring笔记

记得加上@Component让写的东西可以被扫描为spring的组件 

给实体类赋值的方法

1.可以在属性名上通过注解@Value直接赋值

2.通过yaml文件注入(注意空格的用法)

第二种方法必须使用@CongifurationProperties(prefix = "参数")来进行绑定才能生效

 JSR303数据校验

Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。我们这里来写个注解让我们的name只能支持Email格式;

@Component //注册bean
@ConfigurationProperties(prefix = "person")
@Validated  //数据校验
public class Person {

    @Email(message="邮箱格式错误") //name必须是邮箱格式
    private String name;
}

message是自定义的

常见的参数

@NotNull(message="名字不能为空")
private String userName;
@Max(value=120,message="年龄最大不能查过120")
private int age;
@Email(message="邮箱格式错误")
private String email;

空检查
@Null       验证对象是否为null
@NotNull    验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank   检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty   检查约束元素是否为NULL或者是EMPTY.
    
Booelan检查
@AssertTrue     验证 Boolean 对象是否为 true  
@AssertFalse    验证 Boolean 对象是否为 false  
    
长度检查
@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内  
@Length(min=, max=) string is between min and max included.

日期检查
@Past       验证 Date 和 Calendar 对象是否在当前时间之前  
@Future     验证 Date 和 Calendar 对象是否在当前时间之后  
@Pattern    验证 String 对象是否符合正则表达式的规则

多环境切换

yaml的多文档块

server:
  port: 8081
#选择要激活那个环境块
spring:
  profiles:
    active: prod

---
server:
  port: 8083
spring:
  profiles: dev #配置环境的名称


---

server:
  port: 8084
spring:
  profiles: prod  #配置环境的名称

springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件:

优先级1:项目路径下的config文件夹配置文件优先级2:项目路径下配置文件优先级3:资源路径下的config文件夹配置文件优先级4:资源路径下配置文件

存在优先级问题!需要注意!!!!!

Spring的静态资源映射规则

SpringBoot中,SpringMVC的web配置都在 WebMvcAutoConfiguration 这个配置类里面,里面有许多的配置方法

Thymeleaf 模板:

Thymeleaf的自动配置类:ThymeleafProperties

我们只需要把我们的html页面放在类路径下的templates下,thymeleaf就可以帮我们自动渲染了。

使用thymeleaf什么都不需要配置,只需要将他放在指定的文件夹下即可!

测试:

把html放在templates下

@Controller
public class IndexController {
    private String test;

    @RequestMapping("/test")
    public String test(){

        return test;

    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>测试成功</h1>
</body>
</html>

访问localhost:8080/test即可访问到html

Thymeleaf传值:

@Controller
public class IndexController {
    private String test;

    @RequestMapping("/test")
    public String test(Model model){
        model.addAttribute("msg","传值成功了");
        return test;

    }
}

这里要注意引入头文件,否则出错 

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div th:text="${msg}"></div>
</body>
</html>

这里的${msg}可能会爆红,但不影响程序的正常运行。(设置里可以取消)

thymeleaf的其他用法:

@Controller
public class IndexController {
    private String test;

    @RequestMapping("/test")
    public String test(Model model){
        model.addAttribute("msg","<h1>传值成功了</h1>");

        model.addAttribute("users", Arrays.asList("gao","jie","lin"));
        return test;

    }
}

记得加上头文件xmlns:th="http://www.thymeleaf.org"

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
//转义
<div th:text="${msg}"></div>
//不转义
<div th:utext="${msg}"></div>
<h3 th:each="user:${users}" th:text="${user}" ></h3>
</body>
</html>

可以进行转义或不转义,前面加u,也可以将传递的对象用循环打出来。

扩展MVC的配置方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值