最近新項目要拋棄之前的SSH框架結構,採用最新的RESTful框架結構去實現。前端
作到先後端分離。數據庫方面準備採用Mybatis框架去操做。java
RESTful web Service的搭建參考官方文檔:http://spring.io/guides/gs/rest-service/mysql
RESTful設計風格通俗來說 就是,合理使用HTTP協議(POST,GET,PUT,DELETE)來請求服務。服務將對應的信息以JSON格式返回前臺,而再也不須要提交請求給服務器,服務器處理請求,轉發給頁面。這個設計風格直接將服務器上的每一個模塊抽象成一個個資源。而前端頁面作的 就是訪問資源,獲取資源信息,展現便可。git
接下來展現SpringBoot+Spring+mybatis的配置github
其中採用Maven管理Jar包 其中的pom.xml以下:web
<properties> <java.version>1.6</java.version> <mysql-connector-java.version>5.1.36</mysql-connector-java.version> <!-- 依賴版本 --> <mybatis.version>3.3.1</mybatis.version> <mybatis.spring.version>1.2.4</mybatis.spring.version> <mapper.version>3.3.6</mapper.version> <pagehelper.version>4.1.1</pagehelper.version> </properties> <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-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!-- mysql驅動包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-joda</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-parameter-names</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.11</version> </dependency> <!--Mybatis依賴包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis會和Spring集成 因此這個包很關鍵 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis.spring.version}</version> </dependency> <!-- Mybatis Generator --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> <scope>compile</scope> <optional>true</optional> </dependency> <!--分頁插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>${pagehelper.version}</version> </dependency> <!--通用Mapper--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>${mapper.version}</version> </dependency> </dependencies>
在JAR包下載好以後,配置applicationContext.xml文件。這個文件是Spring的核心文件。咱們將在這個文件裏配置MyBatis的數據庫配置,applicationContext.xml配置以下:spring
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <bean id="ContextTest" class="SSI.applicationContextTest" init-method="testmethod"></bean> <bean id="application" class="SSI.Application"></bean> <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 配置數據源和Mybatis的Mapping文件 --> <property name="dataSource" ref="datasource"></property> <property name="mapperLocations" value="classpath:user-mybatis.xml"></property> </bean> <!-- 數據源 --> <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="url" value="*"></property> <property name="driverClassName" value="*"></property> <property name="username" value="*"></property> <property name="password" value="*"></property> </bean> <bean id="userServices" class="Dao.UserServices"></bean> <bean id="greetingController" class="SSI.GreetingController"> <property name="sqlsessionFactory" ref="sessionFactory"></property> </bean> </beans>
注:這裏的sessionFactory 關聯的類是 org.mybatis.spring.SqlSessionFactoryBean 這個是mybaits的會話工廠。其中的兩個參數dataSource:配置數據源,mapperLocations:配置Mybatis的Mapping文件。sql
這個只是配置了applicationContext.xml 如何告訴SpringBoot啓動的時候加載這個文件呢。以下:數據庫
import org.apache.catalina.LifecycleException; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) throws LifecycleException { //經過註解加載Bean // SpringApplication.run(Application.class, args); //從Spring配置文件加載Bean SpringApplication.run("classpath:applicationContext.xml", args); // SpringApplication app=new SpringApplication(Application.class); // app.run(args); } }
這樣 在SpringBoot啓動的時候 就會去加載applicationContext.xml文件。這樣Spring,SpringBoot,Mybatis就關聯起來了。SpringBoot是經過註解去發現Bean 詳情參考文檔開頭Spring的官方文檔apache
Mybatis的使用,在Dao層 有三種方案。
分別調用對應的方法去執行SQL 同Mybatis使用。上述三種繼承方案有不一樣的處理方法,
第一種方法,繼承SqlSessionTemplate後 因爲這個類重載了三個帶參構造器,繼承以後 須要實現他的一個構造器。將SessionFactory賦值進去。而後經過sessionFactory來獲取sqlSession
第二種方法,繼承SqlSessionDaoSupport 後 能夠發現 只提供了sqlSession變量可使用。可是sqlSession來自sqlSessionFactory 因此 能夠必須在這裏調用setSqlSessionFactory方法。不然你拿到的sqlsession是一個NULL
第三種方法:繼承SqlSessionFactoryBean 以後 查看buildSqlSessionFactory 方法 以下:
如源代碼所示,你得先配置他的configuration.這個是你配置Mybatis的配置文件。這個類功能至關於讀取配置文件,從新建立sqlSessionfactory。以下:
public class MybatisTest { public static void main(String[] args) throws IOException { Reader reader=Resources.getResourceAsReader("Mybatis.xml"); SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader); SqlSession sqlsession=sessionFactory.openSession(); // user list=sqlsession.selectOne("SSI.user.selectUser", "902889"); List<user> list=sqlsession.selectList("selectAll"); System.out.println(list); } }
以上,右鍵application。整個項目啓動。
效果以下
至此整個項目就搭建好了。