网上找了很多资料,学习如何搭建springboot,由于刚刚接触springboot,不是很熟练,通过参考网上别人搭建的例子,自己也搭建了一个简单的springboot+mybaits+maven
网上说springboot很简单,可是很多人都掉了很多次坑,但是说破了什么都不是~跟着我的步骤,你也很快可以迅速搭建一个框架啦~
spring boot 主要是专注于后端的东西,最后能放回一个json数据算成功
如果使用spring boot搭建框架,最好不要用jsp来作为视图的展示,spring boot有内嵌的thymeleaf模板引擎(这东西正在了解中),所以最好用thymeleaf来作为前端页面展示,thymeleaf可以完全替代jsp
一、项目结构
Application必须跟其他包在同一级,Application跟其他包放在springboottest目录下(springboottest记得要跟groupid一样?不大确定)
二、maven
具体安装maven,请结合上一篇文章——springboot搭建Hello World
三、启动类
package springboottest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Created by JC on 2017/2/21.
* 启动文件
*/
@SpringBootApplication
public class Application {
public static void main(String[] args)
{
SpringApplication.run(Application.class,args);
}
}
四、controller
package springboottest.controller;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import springboottest.entity.User;
import springboottest.service.UserService;
import javax.annotation.Resource;
import java.util.List;
/**
* Created by JC on 2017/2/22.
*/
@RestController
@RequestMapping(value = "/user")
public class UserController {
@Resource(name = "userService")
private UserService userService;
@RequestMapping(value = "/findAll")
public ResponseEntity<List<User>> findAll(){
return new ResponseEntity( userService.findAll(), HttpStatus.OK);
}
}
五、service
package springboottest.service;
import org.omg.CORBA.Object;
import springboottest.entity.User;
import java.util.List;
/**
* Created by JC on 2017/2/22.
*/
public interface UserService {
public List<Object> findAll();
}
package springboottest.service.impl;
import org.omg.CORBA.Object;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import springboottest.dao.DaoSupport;
import springboottest.entity.User;
import springboottest.service.UserService;
import javax.annotation.Resource;
import java.util.List;
/**
* Created by JC on 2017/2/22.
*/
@Service("userService")
public class UserServiceImpl implements UserService {
@Resource(name = "daoSupport")
private DaoSupport dao;
@Override
public List<Object> findAll() {
return dao.findAll("UserMapper");
}
}
六、dao
package springboottest.dao;
import org.omg.CORBA.Object;
import springboottest.entity.User;
import java.util.List;
/**
* Created by JC on 2017/2/22.
*/
public interface Dao {
/**
* 查找全部user
*/
public List<Object> findAll(String str);
}
package springboottest.dao;
import org.mybatis.spring.SqlSessionTemplate;
import org.omg.CORBA.Object;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
/**
* Created by JC on 2017/2/22.
*/
@Repository("daoSupport")
public class DaoSupport implements Dao{
@Resource(name = "sqlSessionTemplate")
private SqlSessionTemplate sqlSessionTemplate;
/**
* 查询全部
* @param str
* @return
*/
@Override
public List<Object> findAll(String str) {
return sqlSessionTemplate.selectList(str+".findAll");
}
}
七、entity
package springboottest.entity;
/**
* Created by JC on 2017/2/22.
*/
public class User {
private String F_ID;
private String F_USERNAME;
private String F_PASSWORD;
public String getF_ID() {
return F_ID;
}
public void setF_ID(String f_ID) {
F_ID = f_ID;
}
public String getF_USERNAME() {
return F_USERNAME;
}
public void setF_USERNAME(String f_USERNAME) {
F_USERNAME = f_USERNAME;
}
public String getF_PASSWORD() {
return F_PASSWORD;
}
public void setF_PASSWORD(String f_PASSWORD) {
F_PASSWORD = f_PASSWORD;
}
}
八、UserMapper.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="UserMapper">
<!--表名 -->
<sql id="tableName">
t_user
</sql>
<!-- 字段 -->
<sql id="Field">
F_ID,
F_USERNAME,
F_PASSWORD
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{F_ID},
#{F_USERNAME},
#{F_PASSWORD}
</sql>
<!-- 列表(全部) -->
<select id="findAll" resultType="springboottest.entity.User">
select
<include refid="Field"></include>
from
<include refid="tableName"></include>
</select>
</mapper>
九、pom.xml
<?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>springboottest</groupId>
<artifactId>springboottest</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<!--springboot的基础包-->
<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>
<!--mysql的依赖包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--加入mybatis-spring-boot-stater-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</project>
十、application.yml
# Server settings
server:
port: 8080
address: localhost
# DATASOURCE
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&charaterEncoding=utf-8
username: root
password: root
# Spring profiles
spring:
http:
encoding:
charset: utf-8
enabled: true
force: true
# Mybatis
mybatis:
mapper-locations: classpath:/mybatis/*.xml
type-aliases-package: springboottest.entity
十一、数据库
/*
SQLyog v10.2
MySQL - 5.1.62-community : Database - test
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
/*Table structure for table `t_user` */
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`F_ID` int(11) NOT NULL,
`F_USERNAME` varchar(200) DEFAULT NULL,
`F_PASSWORD` varchar(200) DEFAULT NULL,
PRIMARY KEY (`F_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `t_user` */
insert into `t_user`(`F_ID`,`F_USERNAME`,`F_PASSWORD`) values (1,'小李','123'),(2,'小张','456');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
十二、访问,结果返回json数据
右击Application.java-->Run'Application' 启动启动类
访问路径:不需要加项目名字