一.搭建Spring boot的开发环境
(1)下载并安装及配置Maven
1.下载
单机左侧导航栏的Download,选择apache-maven-3.9.5-bin.zip
2.配置
新建环境变量MAVEN_HOME,变量值为 E:\apache-maven-3.9.4
3.检查
在系统桌面点击win+r键,输入“cmd”,并在窗口输入“mvn -v”,出现Maven的版本信息,则说明安装以及配置成功
二.关于Spring boot里的常用注释以及pom.xml文件里的标签
(1)常用注释:
-
@SpringBootApplication:标识一个 Spring Boot 应用程序的主类,通常放在应用程序的入口类上。
-
@RestController:结合 @Controller 和 @ResponseBody,用于定义 RESTful 服务的控制器类。
-
@RequestMapping:用于映射 HTTP 请求到处理方法,可以用在类级别和方法级别。
-
@Autowired:用于自动装配 bean,可以用在字段、构造方法和方法上。
-
@Service:标识一个业务逻辑组件,通常用在服务层。
-
@Repository:标识一个数据访问组件,通常用在 DAO 层。
-
@Component:通用的注解,用于标识一个受 Spring 管理的组件。
-
@Configuration:标识一个配置类,通常与@Bean一起使用,用于定义 bean。
-
@Value:用于从配置文件中读取值,将配置属性注入到 bean 中。
-
@EnableAutoConfiguration:开启自动配置,让 Spring Boot 根据项目的依赖配置自动配置项目。
-
@EnableWebMvc:开启 Spring MVC 的功能,通常用于定制化 MVC 配置。
-
@EnableScheduling:开启定时任务的支持。
-
@Transactional:声明事务性方法。
-
@PathVariable:用于将 URL 模板中的变量绑定到方法参数。
-
@RequestParam:用于将请求参数绑定到方法参数。
-
@RequestBody:用于将 HTTP 请求体绑定到方法参数。
-
@CrossOrigin:用于启用跨域资源共享(CORS)。
-
@ExceptionHandler:用于定义全局的异常处理方法。
-
@Async:用于标识异步方法或者异步执行的方法。
-
@Scheduled:用于标识定时任务方法。
-
@Cacheable、@CachePut、@CacheEvict:用于支持 Spring 缓存功能。
-
@Valid:用于在方法参数上开启校验。
-
@EnableTransactionManagement:开启注解驱动的事务管理。
-
@EnableCaching:开启 Spring 缓存功能。
-
@Profile:用于定义不同环境下的 bean 注册条件。
-
@ConditionalOnProperty:根据配置属性来条件化地创建 bean。
-
@ConditionalOnClass、@ConditionalOnMissingClass:根据类的存在与否来条件化地创建 bean。
(2)xml文件里的标签 :
1.<dependencies> </dependencies>定义项目所依赖的外部库、框架或其他模块。
2.<dependency> </dependency>标签用于定义项目所依赖的外部库或模块。通过添加<dependency>标签,我们可以声明项目需要使用的外部库的名称、版本和其他相关信息,以便Maven能够自动下载并管理这些依赖。
一个典型的<dependency>标签通常包含以下几个子元素:
<groupId>:指定依赖的组织或公司的ID。
<artifactId>:指定依赖的库的名称。
<version>:指定依赖的版本号。
三.数据层框架的整合和使用,如mybatis、mybatis-plus、Jpa的原理和简单使用
MyBatis 原理和简单使用
原理: MyBatis 是一种基于 Java 的持久层框架,它通过 XML 或注解的方式将 SQL 语句与 Java 方法进行绑定,实现了将数据库操作映射成 Java 对象的过程。
简单使用:
- 配置数据源和 MyBatis 的配置文件。
- 创建对应的实体类,与数据库中的表进行映射。
- 创建 Mapper 接口和对应的 XML 文件,定义 SQL 查询、插入、更新、删除等操作。
- 在业务代码中使用 MyBatis 的 SqlSession 执行 SQL 操作。
// 示例 Mapper 接口
public interface UserMapper {
User selectUserById(Integer id);
void insertUser(User user);
void updateUser(User user);
void deleteUser(Integer id);
}
// 示例 XML 文件
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectUserById" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 其他 SQL 语句 -->
</mapper>
MyBatis-Plus 原理和简单使用
原理: MyBatis-Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上提供了更多的便利功能,如自动生成SQL、分页查询、性能分析等。
简单使用:
- 引入 MyBatis-Plus 相关依赖,并配置数据源。
- 创建对应的实体类,使用注解标识主键、表名等信息。
- 创建对应的 Mapper 接口,继承BaseMapper接口。
- 直接在业务代码中使用 MyBatis-Plus 提供的方法操作数据库。
// 示例实体类
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
// 其他属性
}
// 示例 Mapper 接口
public interface UserMapper extends BaseMapper<User> {
// 可以直接调用 MyBatis-Plus 提供的方法,无需编写 SQL
}
JPA 原理和简单使用
原理: JPA 是 Java 持久化 API 的标准,它通过注解的方式将实体类映射到数据库表,提供了一种对象关系映射(ORM)的解决方案。
简单使用:
- 配置 JPA 相关依赖,设置数据源和实体管理工厂。
- 创建对应的实体类,使用注解标识主键、表名等信息。
- 创建 Repository 接口,继承JpaRepository或CrudRepository接口。
- 在业务代码中使用 Repository 接口提供的方法进行数据库操作。
// 示例实体类
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 其他属性
}
// 示例 Repository 接口
public interface UserRepository extends JpaRepository<User, Long> {
// 可以直接调用 JpaRepository 提供的方法,无需编写 SQL
}
总的来说,MyBatis 通过 XML 或注解的方式实现 SQL 和 Java 方法的绑定,MyBatis-Plus 在 MyBatis 的基础上提供了更多的便利功能,而 JPA 则是一种标准的 Java 持久化 API,通过注解的方式实现对象关系映射。
四.前端模板引擎Thymeleaf的整合和使用
Thymeleaf是一种用于Web和独立环境的现代服务器端Java模板引擎。它能够处理HTML、XML、JavaScript、CSS甚至纯文本。Thymeleaf最大的特点是可以创建自然、优雅的模板,模板可以直接在浏览器中进行展示。
1. 添加依赖
首先,你需要在你的项目中添加Thymeleaf的依赖。如果你使用的是Maven,你可以在pom.xml文件中添加如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2. 配置Thymeleaf
在Spring Boot应用中,Thymeleaf通常需要进行一些配置。你可以在application.properties或者application.yml文件中添加Thymeleaf的相关配置
spring:
thymeleaf:
prefix: classpath:/templates/
suffix: .html
encoding: UTF-8
cache: false
3. 创建模板文件
在src/main/resources/templates目录下创建Thymeleaf模板文件,比如index.html,并使用Thymeleaf的语法编写HTML内容。
4. 在Controller中使用Model传递数据
在Spring MVC的Controller中,通过Model对象可以向模板传递数据,在Thymeleaf模板中使用这些数据。例如:
@Controller
public class MyController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("name", "Thymeleaf");
return "index";
}
}
5.在模板中使用Thymeleaf语法
在Thymeleaf模板中,你可以使用Thymeleaf提供的各种语法来渲染数据、控制显示与隐藏等操作。例如:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello Thymeleaf</title>
</head>
<body>
<h1 th:text="'Hello, ' + ${name} + '!'"></h1>
</body>
</html>
在上面的例子中,th:text指令用于替换元素的文本内容,${name}则表示通过Model传递的数据 。
五.总结
优点
-
简化配置:Spring Boot 基于约定优于配置的原则,通过自动配置机制,减少了开发者在项目配置上的工作量。它能够根据项目中所引入的依赖自动完成相关的配置,使得开发者可以更专注于业务逻辑的实现而不必过多关注底层框架的配置。
-
快速启动:Spring Boot 提供了内置的容器,如 Tomcat、Jetty 等,可以将应用打包成可执行的 JAR 文件,方便快速启动和部署。我们只需运行一个简单的命令或使用 IDE 插件就能够轻松地启动整个应用。
-
丰富的生态系统:Spring Boot 与其他 Spring 项目高度集成,可以方便地与 Spring Cloud、Spring Data、Spring Security 等框架进行搭配使用。这些集成的框架和模块提供了丰富的功能和扩展性,使得开发者能够更高效地构建复杂的应用系统。
-
自动化测试:Spring Boot 提供了丰富的测试支持,包括单元测试、集成测试、端到端测试等。它提供了一系列的注解和工具,使得编写和运行测试变得非常简单和高效。
-
强大的监控与管理功能:通过集成 Spring Boot Actuator 模块,我们可以方便地对应用系统进行监控和管理。它提供了众多的端点(endpoints),如健康检查、性能监控、配置信息等,方便我们对应用系统进行监测、调试和运维。
不足
-
学习曲线较陡峭:尽管 Spring Boot 简化了开发流程,但对于完全没有使用过 Spring 的开发者来说,仍然需要学习和理解 Spring 的基本概念和原理。因此,在初次接触 Spring Boot 时,可能会感到有些复杂和困惑。
-
灵活性相对受限:为了简化配置和提高开发效率,Spring Boot 在某种程度上做出了一些约定,这意味着一些高度个性化的需求可能需要额外的配置或自定义。在一些特殊场景下,可能需要深入了解和调整 Spring Boot 的自动配置机制。
结论
总体而言,Spring Boot 是一个强大且高效的开发框架,它在简化配置、快速启动、测试支持和监控管理等方面带来了诸多优势。通过合理利用和深入学习 Spring Boot,我们可以更加高效地构建稳定、可靠的应用系统。同时,也需要注意其学习曲线和灵活性方面的挑战,以充分发挥 Spring Boot 的优势,并针对特定需求进行适当的调整和扩展。