T系列项目讲解笔记1:后端依赖分析和pom.xml文件解析

2024-07-08 10:32:19 浏览数 (2)

一、pom.xml 文件解析

基于Maven构建的SpringBoot项目是一种使用Maven作为构建工具,SpringBoot作为框架的项目。SpringBoot是一个开源的Java框架,用于简化Spring应用程序的创建和开发过程。Maven是一个项目管理和构建自动化工具,用于Java项目的构建、依赖管理和文档生成。

代码语言:javascript复制
├── src
│   ├── main
│   │   ├── java/cn/zwz/demo
│   │   │   ├── ZwzApplication.java
│   │   │   └── ...
│   │   └── resources
│   │       ├── application.yml
│   │       └── ...
│   └── test
│       ├── java/cn/zwz/demo
│       │   └── ...
│       └── resources
└── pom.xml

pom.xml 样例文件如下。

代码语言:javascript复制
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>com.example</groupId>
    <artifactId>my-project</artifactId>
    <version>1.0-SNAPSHOT</version>
 
    <properties>
        <!-- 定义项目属性 -->
    </properties>
 
    <dependencies>
        <!-- 项目依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
 
    <build>
        <!-- 构建配置 -->
    </build>
 
    <repositories>
        <!-- 仓库配置 -->
    </repositories>
 
    <pluginRepositories>
        <!-- 插件仓库配置 -->
    </pluginRepositories>
 
    <distributionManagement>
        <!-- 部署配置 -->
    </distributionManagement>
 
    <reporting>
        <!-- 报告配置 -->
    </reporting>
 
</project>
  • project 是根元素。
  • modelVersion 指定了 POM 模型的版本。
  • groupId 定义了项目的组织标识。
  • artifactId 定义了项目的唯一标识。
  • version 定义了项目的版本号。
  • name:定义了项目名称。
  • description:定义了项目备注。
  • properties 定义了可重用的属性。
  • dependencies 列出了项目的所有依赖
  • build 包含了项目构建时的配置。
  • repositories 定义了依赖的仓库。
  • pluginRepositories 定义了插件的仓库。
  • distributionManagement 定义了项目构建的输出的部署配置。
  • reporting 定义了项目报告的特殊配置。

二、项目所需依赖

2.1 spring-boot-starter-web(*熟悉)

Spring Boot Starter Web 是一个用于构建基于 Spring 的 Web 应用程序的依赖项,它自动配置了嵌入式 Tomcat 或 Jetty 服务器,以及 Spring MVC 和 Spring WebFlux 框架。这个依赖项简化了 Web 应用程序的配置和开发过程,提供了对 RESTful API、WebSocket 和其他 Web 服务的支持。通过使用 Spring Boot Starter Web,开发者可以快速搭建起一个功能完备的 Web 应用程序,而无需手动配置大量的 XML 或 Java 配置文件。此外,它还整合了其他常用的库,如 Jackson 用于 JSON 处理、Thymeleaf 用于模板渲染等,进一步简化了开发工作。

代码语言:javascript复制
@SpringBootApplication
@MapperScan(basePackages = {"com.dao"})
public class SpringbootSchemaApplication extends SpringBootServletInitializer{

	public static void main(String[] args) {
		SpringApplication.run(SpringbootSchemaApplication.class, args);
	}
}

2.2 mybatis-spring-boot-starter(*熟悉)

MyBatis-Spring-Boot-Starter 是一个集成了 MyBatis 和 Spring Boot 的依赖库,它简化了在 Spring Boot 应用程序中使用 MyBatis 的配置和集成过程。这个依赖库提供了自动配置功能,使得开发者可以轻松地将 MyBatis 与 Spring Boot 应用程序结合使用,而无需手动配置数据源、事务管理器等。通过使用 MyBatis-Spring-Boot-Starter,开发者可以更加专注于业务逻辑的实现,提高开发效率。此外,它还支持 MyBatis 与 Spring Data JPA 的集成,使得开发者可以在同一个应用程序中同时使用 MyBatis 和 Spring Data JPA。

代码语言:javascript复制
<mapper namespace="com.example.mapper.UserMapper">
  <!-- 查询用户 -->
  <select id="selectUser" parameterType="int" resultType="com.example.entity.User">
    SELECT id, username, email
    FROM users
    WHERE id = #{id}
  </select>
</mapper>

2.3 spring-boot-starter-jdbc(*熟悉)

Spring Boot Starter JDBC 是一个用于简化 Spring Boot 应用程序中 JDBC 配置的依赖。它自动配置了数据源和 JdbcTemplate,使得开发者可以轻松地使用 JDBC 进行数据库操作。这个依赖包含了 JDBC API、数据库连接池(如 HikariCP、Tomcat JDBC 或 Apache DBCP2)和 Spring 的 JdbcTemplate。通过添加这个依赖,Spring Boot 会自动配置数据源和事务管理器,开发者只需在 application.properties 或 application.yml 文件中配置数据库连接信息,即可快速开始使用 JDBC 进行数据库操作。

代码语言:javascript复制
public class demo1 {
    /*
      1. 导入mysql驱动包
      2. 注册驱动
      3. 建立与mysql的连接驱动
      4. 向mysql发送sql语句
      5. 接收返回效果
      6. 关闭连接通道
     */
    public static void main(String[] args) {
        try {
            // 初始化驱动程序,这样就可以打开与数据库的通信信道
            Class.forName("com.mysql.cj.jdbc.Driver"); //以java反射机制来创建此类对象
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        //characterEncoding=utf8编码设置,连接mysql8 必须设置时区Timezone=Asia/Shanghai
        String url = "jdbc:mysql://127.0.0.1:3306/t001?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
        try {
            //Connection接口  实际返回的mysql的实现类对象
            Connection connection =  DriverManager.getConnection(url,"root","123456");
            //Statement 对象 发送sql
            Statement statement = connection.createStatement();
            //statement.executeUpdate(); statement.executeQuery();
            statement.executeUpdate("insert into major(mname)values('网络')");
            //statement.executeQuery();
            statement.close();
            connection.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

2.4 mysql-connector-java(*熟悉)

MySQL Connector/J 是一个用于连接 Java 应用程序和 MySQL 数据库的 JDBC 驱动程序,它提供了一个简单易用的 API,允许开发者在 Java 应用程序中执行 SQL 语句、事务和存储过程等操作。这个驱动程序遵循 JDBC 4.0 规范,支持自动重连、连接池、SSL 加密等高级功能。

代码语言:javascript复制
spring:
    datasource:
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/t101?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT+8
        username: root
        password: 123456

2.5 shiro-spring

Shiro-Spring依赖是一个集成了Apache Shiro安全框架与Spring框架的库,它允许开发者在Spring应用程序中轻松地实现认证、授权、会话管理和安全策略等功能。通过使用shiro-spring依赖,开发者可以利用Shiro提供的丰富安全特性,同时保持Spring框架的灵活性和易用性。这个依赖简化了在Spring项目中集成Shiro的过程,使得开发者可以更加专注于业务逻辑的实现,而不必过多地关注底层的安全细节。使用shiro-spring依赖,可以提高开发效率,降低安全风险,并确保应用程序的安全性。

2.6 mybatis-plus(*熟悉)

MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它继承了 MyBatis 的所有特性,同时加入了强大的功能,如自动填充、乐观锁、逻辑删除、性能分析等。MyBatis-Plus 的依赖主要包括:mybatis-plus-boot-starter(核心依赖)、mybatis-plus-extension(提供扩展功能,如分页插件、性能分析插件等)、mybatis-plus-annotation(提供注解支持,方便在实体类和 Mapper 接口上使用 MyBatis-Plus 功能)以及 mybatis-plus-core(提供 MyBatis-Plus 的核心功能实现)。使用 MyBatis-Plus 可以大大简化数据库操作,提高开发效率。

2.7 mybatisplus-spring-boot-starter(*熟悉)

MyBatis-Plus-Spring-Boot-Starter 是一个集成了 MyBatis-Plus 和 Spring Boot 的依赖库,它简化了在 Spring Boot 项目中使用 MyBatis-Plus 的配置和使用过程。MyBatis-Plus 是一个 MyBatis 的增强工具,提供了诸如自动填充、性能分析、逻辑删除等高级功能,使得开发者在使用 MyBatis 时更加便捷高效。通过引入 MyBatis-Plus-Spring-Boot-Starter 依赖,开发者可以快速地将 MyBatis-Plus 集成到 Spring Boot 项目中,实现对数据库的高效操作和管理。

代码语言:javascript复制
@Override
public PageUtils queryPage(Map<String, Object> params, Wrapper<XueshengEntity> wrapper) {
	  Page<XueshengView> page =new Query<XueshengView>(params).getPage();
		page.setRecords(baseMapper.selectListView(page,wrapper));
		PageUtils pageUtil = new PageUtils(page);
		return pageUtil;
}

@Override
public List<XueshengVO> selectListVO(Wrapper<XueshengEntity> wrapper) {
	return baseMapper.selectListVO(wrapper);
}

@Override
public XueshengVO selectVO(Wrapper<XueshengEntity> wrapper) {
	return baseMapper.selectVO(wrapper);
}

@Override
public List<XueshengView> selectListView(Wrapper<XueshengEntity> wrapper) {
	return baseMapper.selectListView(wrapper);
}

@Override
public XueshengView selectView(Wrapper<XueshengEntity> wrapper) {
	return baseMapper.selectView(wrapper);
}

2.8 protobuf-java

Protobuf-java依赖是Google Protocol Buffers(简称Protobuf)的一个Java实现,它允许开发者使用一种与语言无关的格式来序列化结构化数据。Protobuf是一种灵活、高效的数据交换格式,广泛应用于数据存储、通信协议等领域。在Java项目中,引入protobuf-java依赖可以方便地实现跨平台、跨语言的数据交换。

2.9 commons-lang3

commons-lang3是一个功能强大的Java开源库,由Apache软件基金会开发和维护。它提供了许多用于处理字符串、数字、日期、集合等常见编程任务的工具类和方法。这个库的主要目的是简化Java开发,提高代码的可读性和可维护性。commons-lang3包含了诸如StringUtils、NumberUtils、DateUtils、ArrayUtils等实用工具类,它们提供了丰富的静态方法,使得处理各种数据类型变得更加简单。此外,commons-lang3还包含了一些用于对象比较、反射操作、异常处理等方面的功能,使得Java开发者能够更加高效地编写代码。

2.10 validation-api

Validation API 是 Java EE 规范的一部分,它提供了一组注解和接口,用于在 Java 应用程序中实现数据验证。Validation API 允许开发者通过使用 JSR 380 规范定义的约束注解(如 @NotNull、@Size、@Email 等)来声明性地指定验证规则,然后使用 Validator 接口对 JavaBean 对象进行验证。Validation API 支持自定义验证器,可以轻松地扩展和自定义验证逻辑。它还与 Bean Validation 1.1 规范兼容,可以与 Hibernate Validator 等第三方验证器库一起使用。在 Java Web 应用程序中,Validation API 可以与 Servlet API、JAX-RS 和其他 Java EE 技术无缝集成,为应用程序提供一致且可维护的数据验证机制。

2.11 commons-io

commons-io是一个Java开源库,由Apache软件基金会提供,主要用于简化文件和IO操作。它提供了许多实用的工具类和方法,如文件复制、文件比较、文件内容查找等,使得文件操作更加简单和高效。commons-io依赖广泛应用于Java项目中,特别是在需要处理文件和IO操作的场景下。通过使用commons-io库,开发者可以避免编写重复的代码,提高开发效率,同时保证代码的可读性和可维护性。

2.12 hutool-all(*熟悉)

Hutool是一个Java工具类库,提供了丰富的工具类,包括日期时间、文件操作、加密解密、HTTP客户端等。hutool-all是一个包含Hutool所有模块的依赖,可以方便地在项目中引入。使用hutool-all可以大大简化开发过程,提高开发效率。

简化前:

代码语言:javascript复制
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class SimpleDateFormatExample {
    public static void main(String[] args) {
        // 创建一个SimpleDateFormat对象,定义格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        
        // 获取当前日期时间
        Date now = new Date();
        
        // 使用format方法格式化日期时间
        String formattedDate = sdf.format(now);
        
        // 打印格式化后的日期时间
        System.out.println(formattedDate);
    }
}

简化后:

代码语言:javascript复制
String str = DateUtils.now();

2.13 fastjson(*熟悉)

Fastjson是一个Java语言编写的高性能功能完善的JSON库,用于将Java对象转换为JSON格式的字符串,以及将JSON格式的字符串解析为Java对象。Fastjson具有快速解析、低内存消耗、丰富的数据类型支持等特点,广泛应用于Web开发、移动应用、大数据处理等领域。

JSON样例1:

代码语言:javascript复制
{
  "name": "John Doe",
  "age": 30,
  "isEmployed": true,
  "address": {
    "street": "123 Main St",
    "city": "Anytown",
    "zipCode": "12345"
  },
  "phoneNumbers": ["123-456-7890", "987-654-3210"]
}

JSON样例2:

代码语言:javascript复制
{
  "database": {
    "host": "localhost",
    "port": 3306,
    "username": "user",
    "password": "password"
  },
  "server": {
    "port": 8080,
    "logLevel": "debug"
  }
}

2.14 java-sdk

百度人工智能Java SDK提供了丰富的API,支持多种AI功能,如语音识别、语音合成、图像识别、自然语言处理等。

0 人点赞