1. 程式人生 > >使用Maven搭建Springboot版ssm框架

使用Maven搭建Springboot版ssm框架

開發環境 IDE:Idea-2017.1.4 Maven:3.0.4 Spring-Boot:1.5.3.RELEASE mysql:5.5.49 開發步驟: 一、搭建Maven版本SpringBoot工程 1 .搭建普通Maven工程 2 .匯入SpringBoot依賴 3 .書寫SpringBoot執行主類 4 .配置application.properties檔案 5 .測試SpringBoot是否搭建成功 二、搭建SSM工程 1 .建立UserBean類 2 .建立mapper.xml檔案 3 .建立mapper,service,controller類 4 .配置application.properties檔案 5 .啟動工程測試

直接上截圖: 一、搭建Maven版本SpringBoot工程 1 .使用Idea搭建普通Maven工程 新建Maven工程 使用模板建立Maven工程 使用模板建立Maven工程 填寫專案在全球的唯一標識和專案名稱 填寫專案在全球的唯一標識和專案名稱 填寫Maven的配置(請保證填寫的Maven配置可以正常連線到Maven倉庫) 填寫Maven配置 直接點選finish完成即可 Maven工程建立完成

2 .匯入SpringBoot依賴 引入依賴前,將maven生成的一些外掛和依賴刪除,只保留如下配置:

<?xml version="1.0" encoding="UTF-8"?>

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>cn.org.test</groupId>
  <artifactId>spring-bootTest</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>spring-bootTest Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
  </dependencies>

  <build>
   <!--專案打出來的war包的名稱-->
    <finalName>spring-bootTest</finalName>
  </build>
</project>

在pom.xml檔案中加入以下依賴

<!--繼承spring-boot-starter-parent專案來獲得一些合理的預設配置-->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
  </parent>
<!--web專案依賴-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

3 .建立包路徑cn.org.test。並在test包下書寫SpringBoot執行主類

@SpringBootApplication
public class SpringBootUserApplication {
    /**
     * spring boot的入口
     * @param args
     */
    public static void main(String[] args) {
        SpringApplication.run(SpringBootUserApplication.class,args);
    }
}

@SpringBootApplication註解的作用(個人理解): (1).掃描當前包及當前包子包下被@Controller、@service、@Resposity註解的類,並將其加入到Spring容器管理 (2).程式啟動時,載入SpringBoot預設的配置 進行到這一步,專案結構為: 專案結構 4 .測試SpringBoot是否搭建成功 執行主類中的main方法,啟動SpringBoot工程。看到下圖所示提示資訊,代表啟動成功 SpringBoot基礎程式碼環境搭建成功 二、搭建SSM工程 1 .新增mybatis和mysql驅動依賴

<!--SpringBoot和Mybatis的整合-->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.1</version>
    </dependency>
    <!--Mysql驅動包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.23</version>
    </dependency>

2 .在test包下建立domain包並在其下建立UserBean類,隨便寫幾個屬性

public class User implements Serializable {
    private String userId;
    private String userName;
    private int age;
    private String address;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        User user = (User) o;

        if (age != user.age) return false;
        if (userId != null ? !userId.equals(user.userId) : user.userId != null) return false;
        if (userName != null ? !userName.equals(user.userName) : user.userName != null) return false;
        return address != null ? address.equals(user.address) : user.address == null;
    }

    @Override
    public int hashCode() {
        int result = userId != null ? userId.hashCode() : 0;
        result = 31 * result + (userName != null ? userName.hashCode() : 0);
        result = 31 * result + age;
        result = 31 * result + (address != null ? address.hashCode() : 0);
        return result;
    }
}

3 .建立mapper.xml檔案 新建resources資料夾,並在其下建立mapper包,在mapper下建立mapper.xml檔案,結構如下: mapper檔案所在目錄 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="cn.org.test.mapper.UserMapper">
    <resultMap id="getUser" type="User">
        <result column="user_id" property="userId" jdbcType="VARCHAR" />
        <result column="user_name" property="userName" jdbcType="VARCHAR" />
        <result column="age" property="age" jdbcType="INTEGER" />
        <result column="address" property="address" jdbcType="VARCHAR" />
    </resultMap>
    <select id="getUser" resultMap="getUser">
        SELECT * from USER
    </select>
</mapper>

4 .分別在test包下建立mapper包,service包,controller包,並分別在其下建立mapper介面,service介面,controller類 (1) UserMapper.java

@Mapper
public interface UserMapper {
    public User getUser();
}

@Mapper註解是將當前介面宣告為一個Mapper介面。 (2) 建立service介面

public interface UserService {
    public User getUser();
}

在service包下建立impl包,並在impl包下建立UserServiceImpl.java。實現UserService介面

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    public UserMapper userMapper;

    @Override
    public User getUser() {
        User user = userMapper.getUser();
        return user;
    }
}

(3) UserController.java

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    public UserService userService;
    @RequestMapping("/getUser")
    @ResponseBody
    public User getUser(String userId) {
        System.out.println("獲取到使用者的唯一標識:"+userId);
        User user = userService.getUser();
        return user;
    }
}

注意:我們自己寫的類所在包層級要低於主類所在包的層級,否則Springboot主類無法掃描我們寫的類。啟動工程後,進行訪問。會報出如下錯誤: 錯誤截圖 我工程中的層級結構截圖如下: 主類以及自寫類層級結構劃分截圖 5 .在resources資料夾下新建application.properties檔案,並新增如下配置:

#資料庫連線配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/user?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=1234
#mybatis掃描mapper檔案
mybatis.mapper-locations=classpath:/mapper/*.xml
#mybatis將bean設定別名
mybatis.type-aliases-package=cn.org.test.domain

6 .在SpringBoot執行主類上新增@ComponentScan註解,掃描自寫類。

@SpringBootApplication
@ComponentScan(basePackages = {"cn.org.test.service.impl", "cn.org.test.dao", "cn.org.test.controller"})
public class SpringBootUserApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootUserApplication.class,args);
    }
}

7 .建立資料庫表 資料庫表 8 .啟動工程測試 成功獲取到資料