> 文档中心 > SpringBoot属性注入和JSP模板集成

SpringBoot属性注入和JSP模板集成


1. 属性注入

在这里插入图片描述

在这里插入图片描述

基本类型注入

InjectionController

/ * 用来测试属性注入 */@RestControllerpublic class InjectionController {    @Value("${name}")    private String name;    @Value("${age}")    private Integer age;    @Value("${price}")    private Double price;    @Value("${birthday}")    private Date birthday;    @Value("${sex}")    private Boolean sex;    @Value("${qqs}")    private String[]qqs;    @Value("${lists}")    List<String> lists;    @Value("#{${maps}}")    Map<String, String> maps; // 注意:在注入map集合时 配置文件中要使用json格式赋值 在注入时必须使用 "#{${xxx}}" 进行获取    @RequestMapping("inject")    public String inject(){ System.out.println("inject ok"); System.out.println("name = " + name); System.out.println("age = " + age); System.out.println("birthday = " + birthday); System.out.println("price = " + price); System.out.println("sex = " + sex); System.out.println("遍历数组"); for (String qq : qqs) {     System.out.println("qq = " + qq); } System.out.println("================="); System.out.println("遍历list"); lists.forEach(li -> System.out.println("li = " + li)); System.out.println("================="); System.out.println("遍历map"); maps.forEach((key, value) -> System.out.println("key = " + key + "value = " + value)); System.out.println("================="); return  "inject ok";    }}

在这里插入图片描述

application.yml配置文件

server:  port: 8989  servlet:    context-path: /springboot_day2# 声明注入值name: 小陈age: 23price: 23.23birthday: 2012/12/12 12:12:12 # 注意:默认的日期格式为 yyyy/mm/dd HH:MM:sssex: trueqqs: 6099,7088,8009  #注入数组时候,多个元素用 "," 逗号隔开lists: xiaoming,xiaochen,xiaosun,xiaohong  #注入list时候,多个元素用 "," 逗号隔开 和数组一致maps: "{'aa':'小胡','bb':'

在这里插入图片描述

对象类型注入

InjectionObjectController

/ * 测试对象注入 */@RestController@ConfigurationProperties("orders")    //修饰范围: 用在类上 作用: 用来将指定前缀的属性 注入到当前对象中属性名一致的属性中    //注意:使用这个注解为属性一次性赋值,必须为属性提供SET方法    //写成@ConfigurationProperties(value = "orders")或@ConfigurationProperties(prefix = "orders")和上面是一样的public class InjectionObjectController {    private Integer id;    private String name;    private Double price;    public void setId(Integer id) { this.id = id;    }    public void setName(String name) { this.name = name;    }    public void setPrice(Double price) { this.price = price;    }    @RequestMapping("injectObject")    public String injectObject(){ System.out.println("injectObject ok"); System.out.println("id = " + id); System.out.println("name = " + name); System.out.println("price = " + price); return "injectObject ok";    }}

在这里插入图片描述

application.yml

在这里插入图片描述

在pom.xml文件中引入下面这个依赖之后重启springboot应用且对象中属性已经写好然后在application.yml中写前缀的属性时就有提示了。

引入依赖构建自定义注入元数据

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-configuration-processor</artifactId>  <optional>true</optional></dependency>

2. JSP模板集成

在SpringBoot框架中默认模板推荐使用Thymeleaf模板,这里我们优先讲与JSP模板集成

在pom.xml文件中引入jsp的集成jar包

<dependency>    <groupId>jstl</groupId>    <artifactId>jstl</artifactId>    <version>1.2</version></dependency><dependency>    <groupId>org.apache.tomcat.embed</groupId>    <artifactId>tomcat-embed-jasper</artifactId></dependency>

创建webapp包,添加相应的jsp

在这里插入图片描述

在application.yml配置文件里配置视图解析器(配置前缀和后缀)

# 配置jsp视图前缀和后缀   解析结果:前缀 + controller返回值 + 后缀spring:  mvc:    view:      prefix: /     # 视图前缀      suffix: .jsp  # 视图后缀

在这里插入图片描述

在pom.xml中引入jsp运行插件

<build>    <finalName>springboot_day1</finalName>        <plugins> <plugin>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-maven-plugin</artifactId> </plugin>    </plugins></build>

第一种方式使用插件启动访问JSP页面

在这里插入图片描述

第二种方式使用idea中指定工作目录启动 访问JSP

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

之后就像平常一样直接点击run就可以运行了

修改jsp无须重启应用

# 把开发模式打开server:  servlet:    jsp:      init-parameters: development: true

PDF转换