SpringBoot小案例打包执行流程

实现一个下案例的简化部署。

  1. 创建一个maven项目

    1. File -> New -> Project ->Maven,选择SDK版本(通常为1.8版本) -> Next,写项目名称(ArtifactId)和项目坐标(GroupId) -> Next,选择好存储位置后,点击Finish。
    2. 添加目录
    3. 至此,创建好了一个maven项目。
  2. 将maven项目转换成springboot项目

    1. 导入依赖: 打开pom文件,添加父工程和所有项目所需的依赖项(目前只加载web依赖,mysql驱动,mybatis依赖)
      父工程依赖: 管理所有依赖的版本,以后导入的依赖大部分不用写版本,但第三方依赖依然需要写版本号(例如:mybatis依赖属于第三方依赖,没有在starter中进行统一版本管理)。
      starter: 启动器,在大部分依赖都整合在了starter中。

      XML 复制代码
      <!--父工程依赖-->
      <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>2.5.6</version>
          <relativePath/> <!-- lookup parent from repository -->
      </parent>
      
      
      <!--所有项目所需依赖项-->
      <dependencies>
          <!--加载web-->
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
          <!--mysql驱动-->
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
          </dependency>
          <!--mybatis的依赖-->
          <dependency>
              <groupId>org.mybatis.spring.boot</groupId>
              <artifactId>mybatis-spring-boot-starter</artifactId>
              <version>2.1.1</version>
          </dependency>
      </dependencies>
    2. 主程序: 创建启动类(类名一般与项目名一致)

      java 复制代码
      import org.mybatis.spring.annotation.MapperScan;
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      /**
       * 启动类
       */
      @SpringBootApplication // 来源于spring-boot-starter,springboot的核心注解
      @MapperScan("com.qcby.springBootDemoMybatis.mapper")
      public class SpringBootDemoMybatis {
          public static void main(String[] args) {
              SpringApplication.run(SpringBootDemoMybatis.class, args);
          }
      }
    3. 配置类: 文件名为application.yml或application.properties都可以,配置端口号、数据库、mybatis

      XML 复制代码
      server:
        port: 8085
      spring:
        datasource:
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://localhost:3306/mybatis_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
          username: root
          password: root
      mybatis:
        mapper-locations: classpath:mapper/*.xml
        type-aliases-package: com.qcby.springBootDemoMybatis.model
        configuration:
          log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
  3. 写一个小案例:查询所有用户信息

    1. 创建表及添加数据

      sql 复制代码
      create database mybatis_db;
      use mybatis_db;
      ​
      CREATE TABLE `user` (
        `id` int(11) NOT NULL auto_increment,
        `username` varchar(32) NOT NULL COMMENT '用户名称',
        `birthday` datetime default NULL COMMENT '生日',
        `sex` char(1) default NULL COMMENT '性别',
        `address` varchar(256) default NULL COMMENT '地址',
        PRIMARY KEY  (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      ​
      insert  into `user`(`id`,`username`,`birthday`,`sex`,`address`) values (1,'老王','2018-02-27 17:47:08','男','北京'),(2,'熊大','2018-03-02 15:09:37','女','上海'),(3,'熊二','2018-03-04 11:34:34','女','深圳'),(4,'光头强','2018-03-04 12:04:06','男','广州');
    2. 创建实体类:User

      java 复制代码
      public class User {
          private Integer id;
          private String username;
          private Date birthday;
          private String sex;
          private String address;
      
          public User() {
          }
      
          public User(Integer id, String username, Date birthday, String sex, String address) {
              this.id = id;
              this.username = username;
              this.birthday = birthday;
              this.sex = sex;
              this.address = address;
          }
      
          public Integer getId() {
              return id;
          }
      
          public void setId(Integer id) {
              this.id = id;
          }
      
          public String getUsername() {
              return username;
          }
      
          public void setUsername(String username) {
              this.username = username;
          }
      
          public Date getBirthday() {
              return birthday;
          }
      
          public void setBirthday(Date birthday) {
              this.birthday = birthday;
          }
      
          public String getSex() {
              return sex;
          }
      
          public void setSex(String sex) {
              this.sex = sex;
          }
      
          public String getAddress() {
              return address;
          }
      
          public void setAddress(String address) {
              this.address = address;
          }
      
          @Override
          public String toString() {
              return "User{" +
                      "id=" + id +
                      ", username='" + username + '\'' +
                      ", birthday=" + birthday +
                      ", sex='" + sex + '\'' +
                      ", address='" + address + '\'' +
                      '}';
          }
      }
    3. 创建mapper:UserMapper.java和UserMapper.xml

      java 复制代码
      @Mapper
      public interface UserMapper {
          /**
           * 查询所有用户
           * @return
           */
          public List<User> findAll();
      }
      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.qcby.springBootDemoMybatis.mapper.UserMapper">
          <select id="findAll" resultType="com.qcby.springBootDemoMybatis.model.User">
              select * from user
          </select>
      </mapper>
    4. 创建service层:UserService.java和UserServiceImpl.java

      java 复制代码
      public interface UserService {
          List<User> findAll();
      }
      java 复制代码
      @Service
      public class UserServiceImpl implements UserService {
          @Autowired
          private UserMapper userMapper;
      
          @Override
          public List<User> findAll() {
              return userMapper.findAll();
          }
      }
    5. 创建controller层:UserController.java

      java 复制代码
      @RestController
      @RequestMapping("/api/users")
      public class UserController {
          @Autowired
          private UserService userService;
      
          /**
           * 获取所有用户
           */
          @GetMapping
          public List<User> findAllUsers() {
              return userService.findAll();
          }
      }
    6. 运行主程序测试
      访问接口:http://localhost:8085/api/users

  4. 简化部署

    1. 在pom文件中加入插件,加入插件后,刷新。

      XML 复制代码
      <!-- Spring Boot Maven插件,这是生成可执行jar的关键 -->
      <build>
          <plugins>
              <plugin>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-maven-plugin</artifactId>
              </plugin>
          </plugins>
      </build>
    2. 点击右侧Maven -> 点击项目下的Lifecycle -> package,打包成功,项目目录的target下会生成两个文件

    3. 打开cmd,进入该文件的target目录下,执行java -jar springBootDemoMybatis-1.0-SNAPSHOT.jar命令,就可以正常访问链接,输出内容。

相关推荐
BingoGo2 小时前
免费可商用商业级管理后台 CatchAdmin V5 正式发布 插件化与开发效率的全面提升
vue.js·后端·php
IT_陈寒2 小时前
SpringBoot 3.0实战:这5个新特性让你的开发效率提升50%
前端·人工智能·后端
rgeshfgreh2 小时前
Spring Bean管理机制深度解析
java·spring boot·spring
ling-452 小时前
ssm-day07 springboot3、Mybatis-Plus、springboot实战
java·spring boot·后端
少许极端2 小时前
算法奇妙屋(二十三)-完全背包问题(动态规划)
java·算法·动态规划·完全背包
a程序小傲2 小时前
得物Java面试被问:边缘计算的数据同步和计算卸载
java·开发语言·数据库·后端·面试·golang·边缘计算
你不是我我2 小时前
【Java 开发日记】我们来说一下无锁队列 Disruptor 的原理
java·开发语言
强子感冒了2 小时前
Java IO流学习笔记:从字节流到字符流
java·笔记·学习
期待のcode2 小时前
Java虚拟机堆
java·开发语言·jvm