SpringBoot2.x入门到项目实战课程系列(第五章)( 六 )
5.3.4.5 th:object 直接取出对象
- 使用th:object 直接取出对象 , 然后写对象里的属性名即可获取属性值
@RequestMapping("/study")public String study(Map map, HttpServletRequest request) { List userList = new ArrayList<>(); userList.add(new User("小星", 1)); userList.add(new User("小李", 2)); userList.add(new User("小张", 1)); map.put("userList", userList); // 1女, 2男 map.put("sex", 1); map.put("man", 2); // th:text th:utext map.put("desc", "欢迎来到程序员星仔"); request.getSession().setAttribute("user", new User("小不点", 2)); return "study";}
姓名:xxxx
性别:xxxx
5.4 SpringBoot 热部署- 默认情况下 ,在开发中我们修改一个项目文件后 , 想看到效果不得不重启应用 , 这会导致浪费大量时间, 我们希望不重启应用的情况下 , 程序可以自动部署(热部署) 。
- 如何能实现热部署?
- 在 Spring Boot 开发环境下禁用模板缓存
#开发环境下关闭thymeleaf模板缓存 , thymeleaf默认是开启状态spring.thymeleaf.cache=false
2、添加 Spring Boot Devtools 热部署依赖 org.springframework.boot spring-boot-devtools
3、Intellij IEDA和Eclipse不同 , Intellij IDEA必须做一些小调整:- 在 Eclipse 中 , 修改文件后要手动进行保存 , 它就会自动编译 , 就触发热部署现象 。
- 在Intellij IEDA 中 , 修改文件后都是自动保存 , 默认不会自动编译文件 , 需要手动编译按 Ctrl + F9 (推荐使用)或 Build -> Build Project ;或者进行以下设置才会自动编译(效果不明显)(File -> Settings -> Build, Execution, Deployment -> Compiler -> 勾选 Build project automatically)
文章插图
5.5 分析 SpringMVC 自动配置Spring Boot 为 Spring MVC 提供了适用于多数应用的自动配置功能( WebMvcAutoConfiguration) 。 在Spring默认基础上 , 自动配置添加了以下特性:
- 引入 ContentNegotiatingViewResolver 和 BeanNameViewResolver beans.
- 自动配置了视图解析器ViewResolver(根据方法返回值获取视图对象View , 视图对象决定如何渲染?重定向Or 转发)
- ContentNegotiatingViewResolver : 组合所有的视图解析器的(通过源码可分析出)
public class ContentNegotiatingViewResolver //146 public View resolveViewName(String viewName, Locale locale) throws Exception {RequestAttributes attrs = RequestContextHolder.getRequestAttributes();Assert.state(attrs instanceof ServletRequestAttributes, "No current ServletRequestAttributes");List requestedMediaTypes = this.getMediaTypes(((ServletRequestAttributes)attrs).getRequest());if (requestedMediaTypes != null) {//选择所有候选的视图对象List candidateViews = this.getCandidateViews(viewName, locale,requestedMediaTypes);//从候选中选择最合适的视图对象View bestView = this.getBestView(candidateViews, requestedMediaTypes,attrs);//存入所有视图解析器 private List viewResolvers; 107 protected void initServletContext(ServletContext servletContext) {Collection
- 固态硬盘入门手册,一看就精通的电脑硬件教程
- SpringBoot2.x入门到项目实战课程系列(第二章)
- 「精选」网易严选质量数仓建设(二)—质量数仓项目建设及管理
- 「OpenCV入门教程」线性滤波方框滤波、均值滤波与高斯滤波
- Go 实战项目推荐:Gin 实现的工单系统
- Python爬虫入门第一课:如何解析网页
- 更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇
- 宁夏举办第35届青少年科技创新大赛机器人竞赛项目
- 入门到老手全覆盖,锐龙CPU给3D创作加速
- 昔日i7沦为i3,英特尔十代i3或成入门游戏CPU最优选