-
springboot属性文件映射到实体类:
1、pom中引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
<dependency>
2、
读取自己添加的properties配置文件
@Configuration
@ConfigurationProperties(prefix="com.springboot.opensource")
@PropertySource(value="classpath:resource.properties")查看全部 -
SpringBoot整合模板引擎
1.添加依赖:
2.添加配置:
3.添加Controller,在Controller中可以通过ModelMap传递数据:
4.在resources/templates下创建ftl格式文件,格式如下:
查看全部 -
json基本使用方式:
1 JsonIgnore
2 JsonFormat
3 JsonIclude
查看全部 -
@ResponseBody返回对象是以json格式的;@Controller是SpringMVC里的概念
查看全部 -
测试报错:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method (tk.mybatis.mapper.provider.base.BaseInsertProvider.dynamicSQL). Cause: java.lang.InstantiationException: tk.mybatis.mapper.provider.base.BaseInsertProvider 解决方法:将import org.mybatis.spring.annotation.MapperScan;此的导入地址更换成: import tk.mybatis.spring.annotation.MapperScan;
查看全部 -
https://github.com/leechenxiang/imooc-springboot-starter https://github.com/abel533/MyBatis-Spring-Boot查看全部
-
orm 整合
查看全部 -
@JsonIgnore//不显示
@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss a",locale="zh",timezone="GMT+8")//日期格式
@JsonInclude(Include.NON_NULL)/为空不显示
查看全部 -
@ResController = @Controller+@ResponseBody
@JsonIgnore 忽略
@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss a", locale="zh",timezone="GMT+8")日期格式化
查看全部 -
SpringBoot特点:
基于spring,使开发者快速入门,门槛低
SpringBoot可以创建独立运行的应用不依赖于容器
不需要打包成war包,可以放入tomcat中直接运行
简化配置,不用看过多的xml
查看全部 -
<!--freeMark依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <!--ModelAndView-->
查看全部 -
添加@ControllerAdvice注解来捕获异常
查看全部 -
@Configration配置拦截器
继承WebMvcConfigurerAdapter
重写addInterceptors
@Configuration public class WebMvcConfigurer extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new OneInterceptor()).addPathPatterns("/one/**"); super.addInterceptors(registry); } }
public class OneInterceptor implements HandlerInterceptor { @Override//请求处理之前,Controller方法调用之前 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //System.out.println("被one拦截,放行。。。"); //return true; System.out.println("不放行!!!"); returnError(response,"不放行"); return false; }
@Override//请求处理之后,视图渲染之前。controller调用之后 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
@Override//请求结束之后,视图渲染之后,用于清理资源 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
public void returnError(HttpServletResponse response,String result) throws Exception { OutputStream out=null; try { response.setCharacterEncoding("utf-8"); response.setContentType("text/json"); out=response.getOutputStream(); out.write(result.getBytes("utf-8")); out.flush(); }finally { if(out!=null){ out.close(); } } }
60%
查看全部 -
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency>
application的redis配置,注意:timeout>0
@Autowired StringRedisTemplate
template.opsForValue.set("k1","v1")
template.opsForValue.get("k1")
对象转Json
strNotice = new ObjectMapper().writeValueAsString(notice)
json转对象
Notice notice2=new ObjectMapper().readValue(strNotice2,Notice.class)
60%
查看全部 -
SpringBoot整合持久层事物
1、事物的隔离级别有多种,这里采用默认的形式。
2、事物的传播行为,这里主要使用REQUIRED和SUPPORTS。
REQUIRED:当有一个操作需要执行的时候,如果有事物,就会把当前这个操作放入到事物中,如果没有事物,那么就要新建一个事物,然后再去执行(适用于增加、删除、修改的操作)。
SUPPORTS:如果有事物,就把该操作加入当前事物中执行,如果没有事物,就以脱离事物状态去运行(适合读取操作)。
举例:插入一个用户,之后产生一个除0异常,如图。然后把该用户的删除状态由0修改为1,然后再进行修改。
通过查看:用户是插入进去了,但是没有进行修改,由于这个异常,所以这里需要回滚,所以这里需要使用事物。
这里只需要在执行数据库操作的方法上添加注解@Transactional,并且事物的传播行为REQUIRED,此时就会发现没有进行插入,也就是事物进行了回滚,这也就是事物的作用,要么一组操作全部成功,要不就都失败。
拓展:SpringMVC事物的使用,需要在配置文件进行配置,如下图,针对特定方法的开头单词进行事物的操作。
查看全部
举报