1.Spring boot常用注解介绍:
-
@SpringBootApplication
: 这是一个组合注解,用于标记主应用程序类。它包括@Configuration
、@EnableAutoConfiguration
和@ComponentScan
注解,
注解作用包括:@Configuration
:标识该类是一个配置类,定义配置信息。@ComponentScan
:启用组件扫描,自动发现和注册Bean。
:启用自动配置,根据项目的依赖和配置,自动配置Spring应用。@EnableAutoConfiguration
-
@RestController
: 用于标记RESTful风格的控制器类,它结合了@Controller
和@ResponseBody
注解。 -
@RequestMapping
: 用于映射HTTP请求到处理方法上,注解可以指定处理请求的 URL 路径、HTTP 方法、请求参数、请求头等信息,从而告诉 Spring MVC 如何匹配和处理特定的请求。 -
@Autowired
: 自动装配注解,用于自动注入依赖关系。注解可以用在字段、构造方法、Setter 方法上,它会尝试将匹配的 bean 自动注入到标注了@Autowired
的地方。 -
@Value
: 用于从配置文件中读取属性值,并将其注入到字段或方法参数中,在使用@Value
注解注入属性值时,可以这样写:另外,
@Value
注解也可以直接作用在方法参数上,用来注入特定值,例如: -
@Configuration
: 是 Spring 框架中用于定义配置类的注解。通过使用@Configuration
注解,我们可以将一个普通的 Java 类标记为配置类,并在其中声明 bean、配置组件扫描、定义属性源等。 -
@Data:@Data
是Lombok库中提供的一个注解,它可以帮助我们自动化生成 Java 类的一些标准方法,如toString()
、equals()
、hashCode()
和所有属性的getter
和setter
方法。属于常见的注解。 -
@Bean:@Bean用于将一个方法标记为Bean的定义方法。在Spring中,通过
@Bean
注解可以自定义配置和创建Bean,并将其添加到应用程序的上下文中。 -
@ImportResource:@ImportResource
用于将外部的 XML 配置文件导入到当前的 Spring 配置中。通过这个注解,我们可以在使用注解驱动开发的同时,仍然能够使用传统的 XML 配置文件。
2.前端模板引擎Thymeleaf的整合和使用
1.使用Thymeleaf前端模板引擎需要四个步骤
1.引入依赖:使用InteliJ IDEA可以在创建项目时在Spring Initializr中直接添加依赖项,如果没有,则需要在pom.xml文件中输入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2.修改配置信息: 在application.Properties中输入
spring.thymeleaf.cache=false
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
3.在HTML中加入引用
创建一个模板文件,放置在指定的模板目录下,添加命名空间引入:
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
4.使用"th:*"的格式应用各类标签属性
@Controller
public class HelloController{
@GetMapping("/test")
public String test1(Model model){
model.addAttribute("message","新闻");
return "test1";
}
}
2.Thymeleaf的基本语法
1.常用标签
标签名 | 说明 |
th:text | 将标签中的文本内容设置为指定的值 |
th:if/th:unless | 分别用于条件判断,如果满足条件就会渲染对应的HTML代码块 |
th:each | 循环遍历集合或数组中的元素,生成对应的HTML代码块 |
th:href | 用于指定链接地址,可以直接写URL地址或者使用表达式动态地生成链接 |
th:src | 用于指定图片资源或者其他静态资源的地址,同样也可以使用表达式动态地生成资源路径 |
th:class | 用于设置HTML元素的class属性,可以使用字符串或者表达式动态地修改class |
th:style | 用于设置HTML元素的样式属性,可以使用字符串或者表达式动态地修改样式 |
th:object | 用于设置表单中对象数据模型的属性,这个属性会在表单绑定时使用。 |
th:attr | 添加或者移除指定的HTML属性,例如:th:attr="disabled=${isDisabled}"会在表单元素上添加或者移除disabled属性 |
th:value | 设置表单元素的值,例如:th:value="${user.name}"会为input元素设置value属性 |
th:selected | 在下拉菜单中选中指定的选项,例如:th:selected="${color == 'red'}"会将下拉菜单中:value为"red"的选项设置为选中状态 |
th:replace | 用于替换整个HTML元素,例如:<div th:replace="fragments/menu :: menu"></div>会将模板片段fragments/menu中定义的menu标签替换为当前标签 |
th:include | 用于在当前标签中引入另一个页面或者模板,例如:<div th:include="header.html"></div>会在当前位置引入header.html文件的内容 |
th:block | 定义一个块表达式,比如在if语句中需要重新定义局部变量或者添加新的属性,可以使用th:block包裹要执行的代码块 |
th:fragment | 声明一个模板片段,常用于定义被其它模板引用的可复用的HTML代码块 |
th:with | 用于局部定义变量,可以在当前标签和标签中的各种属性、方法中直接使用定义的变量。例如:th:with="articles=${articleService.getAllArticles()}" |
th:switch | 用于定义一个条件判断块。它需要一个表达式作为参数,并将根据这个表达式的值进行分支判断。 |
th:case | 用于定义具体的分支情况。它需要一个参数来指定分支的条件。参数可以是任何表达式,也可以是字符串字面量。 |