前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >T系列项目讲解笔记1:后端依赖分析和pom.xml文件解析

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

作者头像
Designer 小郑
发布2024-07-08 10:32:19
1030
发布2024-07-08 10:32:19
举报
文章被收录于专栏:跟着小郑学JAVA

一、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%2B8
        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功能,如语音识别、语音合成、图像识别、自然语言处理等。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、pom.xml 文件解析
  • 二、项目所需依赖
    • 2.1 spring-boot-starter-web(*熟悉)
      • 2.2 mybatis-spring-boot-starter(*熟悉)
        • 2.3 spring-boot-starter-jdbc(*熟悉)
          • 2.4 mysql-connector-java(*熟悉)
            • 2.5 shiro-spring
              • 2.6 mybatis-plus(*熟悉)
                • 2.7 mybatisplus-spring-boot-starter(*熟悉)
                  • 2.8 protobuf-java
                    • 2.9 commons-lang3
                      • 2.10 validation-api
                        • 2.11 commons-io
                          • 2.12 hutool-all(*熟悉)
                            • 2.13 fastjson(*熟悉)
                              • 2.14 java-sdk
                              相关产品与服务
                              云数据库 MySQL
                              腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档