1. 程式人生 > >Spring Boot + MyBatis 快速入門

Spring Boot + MyBatis 快速入門

這幾天學習了下Spring Boot,想記錄下來以備以後複習檢視用。Spring Boot極度簡化了以往XML配置的複雜繁瑣,只需簡單的幾行配置就可以搭建一個Web工程,大大節省了開發時間。

環境準備

  • Eclipse
  • JDK 1.7
  • Maven
  • MySql

一個最簡單的Web應用
首先新建一個Maven工程,下面是pom.xml的配置

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId
>
<version>1.4.1.RELEASE</version> </parent> <dependencies> <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- MyBatis --> <dependency
>
<groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!--啟動時啟動內建tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> <!--對Jsp支援 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!-- 支援jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- MySql驅動 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> </dependencies>

然後新建一個Application.java

//此註解表示SpringBoot啟動類
@SpringBootApplication
public class Application {

    private static Logger logger = Logger.getLogger(Application.class);

    public static void main(String[] args) {
        logger.info("=================開始成功=================");
        SpringApplication.run(Application.class, args);
        logger.info("=================啟動成功=================");
    }

}

然後寫一個Controller類

@Controller
public class IndexController {

    private static Logger logger = Logger.getLogger(IndexController.class);

    @RequestMapping("/")
    @ResponseBody
    public String index() {
        logger.info("進入index方法");
        return "Hello Spring Boot !";
    }
}

因為Spring Boot內建了Tomcat,這時我們從Application.java的main方法啟動就可以啟動Spring Boot的專案了。
啟動成功
這時我們的第一個Spring Boot專案就啟動成功了,在瀏覽器輸入http://localhost:8080/就可以訪問到剛才Controller裡面的Index方法了。
首頁
下面開始整合MyBatis,因為上面已經引入了Maven依賴,所以這裡我們直接開始整合
在resources目錄下新建config資料夾,新建application.properties配置檔案

#設定Tomcat埠,預設8080
server.port=8080
#設定專案ContextPath
server.context-path=/
#設定Tomcat編碼
server.tomcat.uri-encoding=UTF-8
#設定檢視解析器路徑
spring.mvc.view.prefix=/WEB-INF/views/
#設定檢視解析器字尾
spring.mvc.view.suffix=.jsp

#資料庫配置
spring.datasource.url=jdbc:mysql://localhost:3306/dd?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#配置.xml檔案路徑
mybatis.mapper-locations=classpath:/com/dd/wx/mapper/*.xml
#配置模型路徑
mybatis.type-aliases-package=com.dd.wx.model

附上工程結構,程式碼結構和普通SpringMVC工程結構一樣
工程結構
再Application.java方法中加上註解

//此註解表示動態掃描DAO介面所在包
@MapperScan("com.dd.wx.dao")
//此註解表示SpringBoot啟動類
@SpringBootApplication
public class Application {

    private static Logger logger = Logger.getLogger(Application.class);

    public static void main(String[] args) {
        logger.info("=================開始成功=================");
        SpringApplication.run(Application.class, args);
        logger.info("=================啟動成功=================");
    }

}

編寫測試程式碼

@Autowired
    private IUserService userService;

    @RequestMapping("/getItem")
    public String getItem(HttpServletRequest request) {

        String id = request.getParameter("id");
        logger.info("進入getItem方法,id:"+id);

        User user = userService.getUser(id);
        request.setAttribute("user", user);

        return "/item";
    }

在WEB-INF/views/下新建item.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>詳情</title>
    </head>
    <body>
        獲取成功:${user.name }
    </body>
</html>