剩下的都是些简单的东西了,也不需要什么代码,所以就像笔记一样。
Spring-boot多环境配置
我们都知道application.properties是配置文件,它里面有一个属性用于指定配置文件:
#这里的dev是application-dev.properties文件后面的那个字段 #我这里还可以是pro的生产环境 test的测试环境 spring.profiles.active=dev #spring.profiles.active=test #spring.profiles.active=pro
拷贝多份即可
如何验证?更改下端口进行测试,比如application-dev.properties内容:
#端口号修改 server.port=8081
然后访问下看是不是端口修改了。
Spring-boot跨域访问
可以使用过滤器实现,也可以是Config注解,详看:https://www.jianshu.com/p/e57ed1ee3070
import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @Component public class CorsFilter implements Filter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE,PUT"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "x-requested-with"); chain.doFilter(req, res); } @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void destroy() { // TODO Auto-generated method stub } }
此时再访问,就是不一样的了
Spring-boot数据验证
User类加上一些注解:
public class User { private Integer id; //验证不为空 //验证长度2-8 @NotNull(message = "用户名为空") @Size(min = 2,max = 8,message = "用户长度2-8位") private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
添加一个入口:
@RequestMapping("user") @ResponseBody public User user(@Valid User user) { //TODO 具体业务逻辑 return user; }
然后可以访问试试。需要验证的参数加上注解@Valid。
常见的字段注解如下:
@null 验证对象是否为空 @notnull 验证对象是否为非空 @asserttrue 验证 boolean 对象是否为 true @assertfalse 验证 boolean 对象是否为 false @min 验证 number 和 string 对象是否大等于指定的值 @max 验证 number 和 string 对象是否小等于指定的值 @decimalmin 验证 number 和 string 对象是否大等于指定的值,小数存在精度 @decimalmax 验证 number 和 string 对象是否小等于指定的值,小数存在精度 @size 验证对象(array,collection,map,string)长度是否在给定的范围之内 @digits 验证 number 和 string 的构成是否合法 @past 验证 date 和 calendar 对象是否在当前时间之前 @future 验证 date 和 calendar 对象是否在当前时间之后 @pattern 验证 string 对象是否符合正则表达式的规则 @Email 验证邮箱
实际例子:
@size (min=3, max=20, message="用户名长度只能在3-20之间") @size (min=6, max=20, message="密码长度只能在6-20之间") @pattern (regexp="[a-za-z0-9._%+-]+@[a-za-z0-9.-]+\\.[a-za-z]{2,4}", message="邮件格式错误") @Length(min = 5, max = 20, message = "用户名长度必须位于5到20之间") @Email(message = "比如输入正确的邮箱") @NotNull(message = "用户名称不能为空") @Max(value = 100, message = "年龄不能大于100岁") @Min(value= 18 ,message= "必须年满18岁!" ) @AssertTrue(message = "bln4 must is true") @AssertFalse(message = "blnf must is falase") @DecimalMax(value="100",message="decim最大值是100") DecimalMin(value="100",message="decim最小值是100") @NotNull(message = "身份证不能为空") @Pattern(regexp="^(\\d{18,18}|\\d{15,15}|(\\d{17,17}[x|X]))$", message="身份证格式错误")
你可以试试访问:
http://127.0.0.1:8080/user?name=1
http://127.0.0.1:8080/user?name=11
然后看控制台的log,具体不演示了,如果你想看更多,推荐:https://blog.csdn.net/jiaobuchong/article/details/74094155
Spring-boot单元测试
先添加依赖包:
//单元测试jar包 compile ("org.springframework.boot:spring-boot-starter-test")
然后在这个位置创建一个Test类
内容为:
@RunWith(SpringJUnit4ClassRunner.class) //指向启动类 @SpringBootTest(classes = UnitApp.class) @WebAppConfiguration public class Test { @Autowired private UserMapper userMapper; @org.junit.Test public void testUnitController(){ User user=userMapper.selectUserById(1); System.out.println("结果"+user); } }
主要是那3个注解,指定Unit的Runner,指定启动的app类。很容易理解,不多记录了。不玩Spring-boot了,平时很少用到,下次说不定这个又落伍了?
本站由以下主机服务商提供服务支持:
0条评论