使用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倉庫) 直接點選finish完成即可
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工程。看到下圖所示提示資訊,代表啟動成功 二、搭建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.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 .啟動工程測試