Spring Boot +Spring+ Mybatis的搭建

最近新项目要抛弃以前的SSH框架结构,采用最新的RESTful框架结构去实现。

做到前后端分离。数据库方面准备采用Mybatis框架去操作。

RESTful web Service的搭建参考官方文档:http://spring.io/guides/gs/rest-service/

RESTful设计风格通俗来讲 就是,合理使用HTTP协议(POST,GET,PUT,DELETE)来请求服务。服务将对应的信息以JSON格式返回前台,而不再需要提交请求给服务器,服务器处理请求,转发给页面。这个设计风格直接将服务器上的每个模块抽象成一个个资源。而前端页面做的 就是访问资源,获取资源信息,展示即可。

接下来展示SpringBoot+Spring+mybatis的配置

其中采用Maven管理Jar包 其中的pom.xml如下:

<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配置如下:

<?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文件。

这个只是配置了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的官方文档

Mybatis的使用,在Dao层 有三种方案。

  1. 继承org.mybatis.spring.SqlSessionTemplate
  2. 继承org.mybatis.spring.support.SqlSessionDaoSupport
  3. 继承org.mybatis.spring.SqlSessionFactoryBean

分别调用对应的方法去执行SQL 同Mybatis使用。上述三种继承方案有不同的处理方法,

第一种方法,继承SqlSessionTemplate后 由于这个类重载了三个带参构造器,继承之后  需要实现他的一个构造器。将SessionFactory赋值进去。然后通过sessionFactory来获取sqlSession

160431_4SKd_2970507.png

160450_YCoJ_2970507.png

第二种方法,继承SqlSessionDaoSupport 后 可以发现 只提供了sqlSession变量可以使用。但是sqlSession来自sqlSessionFactory 所以 可以必须在这里调用setSqlSessionFactory方法。否则你拿到的sqlsession是一个NULL

160032_9WkF_2970507.png

第三种方法:继承SqlSessionFactoryBean 之后 查看buildSqlSessionFactory 方法 如下:

160841_qf1Z_2970507.png

如源代码所示,你得先配置他的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。整个项目启动。

效果如下

093000_5ouv_2970507.png

至此整个项目就搭建好了。

 

转载于:https://my.oschina.net/u/2970507/blog/789188

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值