Springboot项目的搭建教程(分离出common父依赖)

yizhihongxing

下面是 Spring Boot 项目搭建教程,包含分离出 common 父依赖的步骤:

1. 环境搭建

首先需要保证本地环境已经安装了 JDK 和 Maven。在命令行输入:

java -version
mvn -v

上述命令输出正常,则说明环境已经搭建好了。

2. 创建 Maven 工程

在命令行输入以下命令:

mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

该命令会生成一个 Maven 工程,目录结构如下:

myproject
  |--src
  |     |--main
  |     |     |--java
  |     |     |--resources
  |     |
  |     |--test
  |           |--java
  |           |--resources
  |
  |--pom.xml

3. 引入 Spring Boot 依赖

在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- 引入 common 项目的父依赖 -->
<dependency>
    <groupId>com.example</groupId>
    <artifactId>common</artifactId>
    <version>0.0.1</version>
</dependency>

其中,spring-boot-starter-web 是 Spring Boot 的 Web Starter,包含了 SpringMVC 和 Tomcat 容器的依赖。

common 是我们创建的另外一个项目,它是用来存放一些通用的代码和配置,可以是一个 Java 库项目。

4. 创建 Spring Boot 应用程序的入口类

src/main/java 下创建一个 Java 类,然后在类级别上添加注解 @SpringBootApplication,该注解包含了以下三个注解:

  • @Configuration
  • @EnableAutoConfiguration
  • @ComponentScan
@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

注:该类名和 artifactId 保持一致。

5. 编写示例代码

src/main/java 下创建一个 Java 类,以 /hello 访问时返回 "Hello World!" 字符串,代码如下:

@RestController
public class HelloWorldController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello World!";
    }
}

备注:@RestController 是 SpringMVC 中新加入的注解,是一个复合注解,等同于 @Controller@ResponseBody。在 Spring Boot 应用中表示这是一个 REST 风格的控制器。

6. 打包和运行

在命令行进入项目根目录,运行以下命令打包项目:

mvn package

运行以下命令启动 Spring Boot 应用:

java -jar target/myproject-1.0-SNAPSHOT.jar

在浏览器访问 http://localhost:8080/hello 即可看到返回的 "Hello World!" 字符串。

7. 通过 Maven 继承机制引入 common 项目的依赖

myproject 的 pom.xml 中添加以下内容:

<project>
    ...
    <dependencies>
        ...
        <!-- 引入 common 项目的父依赖 -->
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>common</artifactId>
            <version>0.0.1</version>
        </dependency>
    </dependencies>
    ...
    <build>
        <plugins>
            ...
        </plugins>
    </build>
</project>

8. 创建 common 项目

创建一个新的 Maven 项目,命名为 common,在 pom.xml 中添加以下父依赖:

<project>
    ...
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    ...
</project>

该父依赖会从 Spring 官方的 Maven 仓库中引入依赖的版本等信息。接下来在 common 项目中添加一些通用的代码或配置即可。

9. 示例代码

下面是一个在 Spring Boot 项目中使用 MyBatis 操作 MySQL 数据库的示例代码。

1)在 myprojectpom.xml 中添加以下依赖:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>2.0.0</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.20</version>
</dependency>

2)在 Spring Boot 应用程序的入口类中添加注解:@MapperScan("com.example.mapper")

3)创建一个 Dao 层的接口,例如,UserMapper,在该接口上添加注解 @Mapper

@Mapper
public interface UserMapper {

    @Select("SELECT * FROM user")
    List<User> findAll();

}

4)创建一个 Service 层的接口和实现,例如,UserService,在该接口上添加注解 @Service

@Service
public interface UserService {

    List<User> findAll();

}

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }

}

5)在控制器中注入 UserService,并创建一个 HTTP GET 请求:

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public List<User> list(){
        return userService.findAll();
    }

}

6)在 application.properties 中配置数据库连接:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis.mapper-locations=classpath:/mapper/*.xml
mybatis.type-aliases-package=com.example.pojo

7)在 src/main/resources 目录下创建一个目录 mapper,在该目录下创建一个 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">

    <select id="findAll" resultType="com.example.pojo.User">
        SELECT * FROM user
    </select>

</mapper>

至此,我们就完成了一个简单的 Spring Boot 项目,并在其中使用了 MyBatis 进行数据库操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot项目的搭建教程(分离出common父依赖) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • notepad++支持什么语言? notepad语言格式设置技巧

    关于”Notepad++支持什么语言”和”Notepad语言格式设置技巧”,以下是详细攻略: Notepad++支持哪些编程语言? Notepad++是一款常用的文本编辑器,它支持多种编程语言和标记语言。下面是Notepad++支持的一些主要编程语言: C、C++、C#、Java、Python、Ruby等大部分主流编程语言。 HTML、CSS、JavaScr…

    Java 2023年6月15日
    00
  • C#模拟实现抽奖小程序的示例代码

    让我详细讲解一下“C#模拟实现抽奖小程序的示例代码”的完整攻略。 步骤1:确定抽奖方式和奖项 首先确定抽奖的方式和奖项,可以是平等概率、权重抽奖等方式,同时也要定义好奖项的名称和中奖几率。 示例代码: //定义奖项名称 string[] rewardNames = {"一等奖", "二等奖", "三等奖&qu…

    Java 2023年5月19日
    00
  • 整理Java编程中字符串的常用操作方法

    下面是整理Java编程中字符串的常用操作方法的完整攻略: 一、字符串的基本操作 在Java中,字符串(String)是一种引用数据类型,也是Java中常用的类型之一。常用的字符串操作方法有: 1. 创建字符串 在Java中,我们可以使用双引号(“”)或者构造方法创建一个字符串对象。示例如下: String str1 = "Hello World!&…

    Java 2023年5月26日
    00
  • MybatisPlus 多租户架构(Multi-tenancy)实现详解

    “MybatisPlus 多租户架构(Multi-tenancy)实现详解”旨在为需要在一个应用中支持多个租户的开发人员提供一种解决方案。在这个架构中,多个租户可以共享相同的代码库和实例,并在逻辑上隔离数据。 实现多租户架构需要考虑以下三个方面: 租户隔离 使用 Mybatis-Plus 提供的 SqlParserInterceptor 对 SQL 进行拦截…

    Java 2023年5月20日
    00
  • 基于tomcat的连接数与线程池详解

    基于Tomcat的连接数与线程池详解 Tomcat 是一个流行的 Java Web 服务器,具有高效和可扩展的设计。在单台服务器上部署多个 Web 应用程序时,可以通过 Tomcat 的连接数和线程池设置来调优性能。 连接数 Tomcat 的连接数指的是并发连接的数量。每个连接的建立都需要一定的资源,因此连接数不能随意增加。在实际部署中,连接数的数量需要根据…

    Java 2023年5月19日
    00
  • 使用 Apache 反向代理的设置技巧

    使用 Apache 反向代理可以帮助我们有效地实现多个应用之间的无缝集成和流量控制。在下面的攻略中,我们将介绍使用 Apache 反向代理的设置技巧,帮助您更好地应用于实际项目中。 原理简介 反向代理是指代理服务器接收客户端请求后,将请求转发给内部服务器,并将内部服务器返回的响应结果返回给客户端。在反向代理的过程中,客户端无需直接连接内部服务器,这样可以实现…

    Java 2023年5月19日
    00
  • java打印正弦曲线示例

    下面我会详细讲解Java打印正弦曲线示例的完整攻略,请耐心阅读。 Java打印正弦曲线示例 简介 本文将介绍使用Java打印正弦曲线的过程,并附上代码示例和详细说明。正弦曲线是一种常见的数学曲线,它可以通过一系列的正弦函数值计算得出并绘制出曲线。 准备工作 在开始正弦曲线的绘制之前,需要先准备好Java开发环境。安装好JDK并配置好环境变量后,打开编辑器开始…

    Java 2023年5月26日
    00
  • Spring MVC—数据绑定和表单标签详解

    SpringMVC 数据绑定和表单标签详解 SpringMVC是一个非常流行的Java Web框架。它通过模型-视图-控制器(MVC)架构,实现了对Web应用程序的易于扩展和维护的分层设计。在实际开发中,数据绑定和表单标签是SpringMVC中最重要的两个特性之一。 数据绑定 数据绑定指的是将请求参数(如表单提交的数据)自动绑定到JavaBean对象上。Sp…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部