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=false2、添加 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
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 徐福记联手JDL京东物流向数智化转型,首次落地智慧园区项目
- 苹果两款新iPad齐曝光:性能提高、入门款更轻薄、售价便宜
- 运动计数开发项目的对抗赛:飞算全自动软件工程平台碾压传统模式
- RHEL 9提升了x86_64处理器的入门要求
- 江北新区企业院士工作站技术攻关项目立项数位居南京第一
- 入门HiFi享好声,这几款耳机绝对值得入手
- 赞!盐城高新区4个项目入选省级项目立项!
- 威海高新区2项目获2020年度山东省重点研发计划(重大科技创新工程)立项支持
- 浙江公布首批“互联网+”医疗服务价格项目!适用各级公立医疗机构
- 168天封顶!投资56亿重点AI项目将在上海竣工,提供世界领先算力支撑
