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

下面是 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日

相关文章

  • 基于Java中的数值和集合详解

    基于Java中的数值和集合详解 本文将介绍 Java 中的数值类型和集合类的基本知识,同时提供几个示例,帮助读者更好地理解这些概念。 数值类型 Java 中的基本数据类型包括整型(int 和 long)、浮点型(float 和 double)、字符型(char)和布尔型(boolean)。这些类型在计算机编程中非常常见,因此应当掌握。 整型 整型分为 int…

    Java 2023年5月26日
    00
  • jsp中四种传递参数的方法

    下面我将详细讲解JSP中四种传递参数的方法: 1. URL传参 URL传参是一种最为简单和常见的传递参数方式,通过URL的?后面可以附上参数键值对。例如: http://localhost:8080/test.jsp?username=Tom&password=123456 在JSP中可以通过request.getParameter()方法获得对应的…

    Java 2023年6月15日
    00
  • BootStrap 可编辑表Table格

    让我来详细讲解一下怎样使用 BootStrap 实现可编辑表格。 什么是 BootStrap 可编辑表格 BootStrap 可编辑表格是一种可以通过鼠标单击或双击来进行编辑的表格。用户可以在表格中直接修改信息,在修改后,表格中的数据可以实时更新。这种可编辑表格在网站开发中非常常见,可以用于数据的展示和修改。 实现方法 实现 BootStrap 可编辑表格需…

    Java 2023年6月16日
    00
  • 关于集合和字符串的互转实现方法

    对于集合和字符串的互转实现方法,一种常见的方式是使用Python中的内置函数和简便的语法。 集合转字符串 如果我们有一个集合,我们可以使用join()函数将集合中的元素连接成一个字符串。具体的实现步骤如下: 将集合中的元素转化为字符串类型,使用map()函数进行转换。 使用join()函数将转化后的字符串元素连接成一个字符串。 下面是一段示例代码: # 定义…

    Java 2023年5月27日
    00
  • SpringBoot整合Redis、ApachSolr和SpringSession的示例

    下面是”SpringBoot整合Redis、ApachSolr和SpringSession的示例”的完整攻略,其中包括两个示例。 1. 环境搭建 首先,在我们开始之前,确保你已经正确地安装了Java、Maven、Redis、ApachSolr和SpringBoot。 1.1 安装Redis 可以在Redis官网上,下载并安装最新版的Redis。如果你使用的是…

    Java 2023年5月20日
    00
  • JAVA多种方法实现字符串反转

    下面是一份针对“JAVA多种方法实现字符串反转”的完整攻略: 前置知识 在学习Java字符串反转之前,需要了解字符串和字符数组的基本概念以及Java中常用的字符串处理方法,例如String的构造方法、length()、charAt()、substring()等。 方法一:使用StringBuilder或StringBuffer的reverse()方法 Str…

    Java 2023年5月26日
    00
  • spring事务传播的Propagation.REQUIRES_NEW以及NEVER MANDATORY验证,及其失效的诡异问题

    NEVER 不使用事务,如果当前事务存在,则抛出异常 验证: @Service public class PrService { @Autowired PrDao dao; @Transactional public void savea() { dao.a();//保存第一条数据 saveb(); } @Transactional(propagation …

    Java 2023年5月8日
    00
  • Java Stopwatch类,性能与时间计时器案例详解

    Java Stopwatch类,性能与时间计时器案例详解 在Java开发中,我们有时候需要统计代码的执行时间及性能等指标信息,这时候我们可以使用Java中的Stopwatch类来实现。本文将详细讲解Stopwatch类的使用以及示例。 1. Stopwatch类的使用 Stopwatch类是Google Guava库中提供的计时器类,可以实现启动、停止和恢复…

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