您的位置:首页 > 编程语言 > Java开发

SSM整合,spring-mybatis配置,service,controller配置

2017-08-08 15:57 169 查看
    SSM,即spring、springmvc、mybatis的缩写,这里,我给大家简要的说明以下要配置的地方。

一、首先,我们需要创建相应的包,确定好我们每类文件应该存放的位置。

二、导入相应的架包,具体的架包我放在WebContent/WEB-INF/lib中后面会给大家上传我整合过的简单的SSM框架

三、编写spring-mybatis.xml文件,这是整合spring与mybatis的文件

<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans  

                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  

                        http://www.springframework.org/schema/context  

                        http://www.springframework.org/schema/context/spring-context-3.1.xsd  

                        http://www.springframework.org/schema/mvc  

                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 导入属性文件 -->
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
id="propertyConfigurer">
<property value="classpath:config/jdbc.properties" name="location" /><!-- 属性文件是自己写的,包含了下面配置数据库需要的各种属性,也可以不要这一步,直接把数据库的各种属性写在相应的位置,跟我们平时用代码连接数据库需要用到的东西差不多
-->
</bean>
<!-- 配置数据库 数据源 -->
<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<prope
4000
rty name="password" value="${jdbc.password}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="${initialSize}"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="${maxActive}"></property>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="${maxIdle}"></property>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="${minIdle}"></property>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="${maxWait}"></property>
</bean>

<!-- spring整合MyBatis 数据源和映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="ds" />
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:com/test/mapping/*.xml" /><!-- 此处唯一需要我们配置的是后面的value,它是我们自己的映射文件的位置,classpath:就相当于项目里面的src -->
</bean>

<!-- dao接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.test.dao" /><!-- 此处唯一需要我们配置的是后面的value,它是我们整合mybatis时的接口文件路径 -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="ds" />
</bean>

</beans>

上面所有需要我们修改的地方,我都有注释出来。

四、上面步骤完成后,我们就可以开始写我们的项目了,跟mybatis一样,要先编写对应的mapping.xml文件,在编写接口去实现想要的数据库功能。

下面是我随便写的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="com.test.dao.TeacherDao">
<select id="TeaCount" resultType="java.lang.Integer"><!-- 这里的id需要在接口中用到,所以尽量写自己能看懂的,后面的返回类型是我们查询结果的类型,这里我们查询的是数量,所以返回值类型是Integer,而下面查询的是老师,所以返回类型是我们在com.test.po包中对应的老师的实例类 -->
select count(id) from teacher;
</select>
<select id="selectAll" resultType="com.test.po.Teacher">
select id,name,age,sex from teacher
</select>

</mapper>

下面是我写的接口

package com.test.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.test.po.Teacher;

public interface TeacherDao {

      int TeaCount();   //方法名就是上面映射文件中对应的id值。

      List<Teacher> selectAll();

}

五、在搞定mybatis之后,我们要编写对应的service层。

首先我们要编写整合service的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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans  

                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  

                        http://www.springframework.org/schema/context  

                        http://www.springframework.org/schema/context/spring-context-3.1.xsd  

                        http://www.springframework.org/schema/mvc  

                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描该包 -->
<mvc:annotation-driven />
<!-- 配置控制器的包 -->
<context:component-scan base-package="com.test.service" /><!-- 这里我配置的是包,它会自动扫描com.test.service包下的所有文件 -->

</beans>

然后我们就可以编写service层了,我们需要创建一个接口跟一个实现类

package com.test.service;

import java.util.List;

import com.test.po.Teacher;

public interface Teacherservicesupport {

     public int countofPage();

     List<Teacher> selectAllt();

}

package com.test.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.test.dao.TeacherDao;

import com.test.po.Teacher;

@Service 

public class Teacherservice implements Teacherservicesupport{

    @Autowired

    private TeacherDao dao;
@Override
public int countofPage() {
//具体的方法
}

@Override
public List<Teacher> selectAllt() {
List<Teacher> list=dao.selectAll();
return list;
}

}

六、编写我们的控制层

首先,我们要做的依然是编写控制层的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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans  

                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  

                        http://www.springframework.org/schema/context  

                        http://www.springframework.org/schema/context/spring-context-3.1.xsd  

                        http://www.springframework.org/schema/mvc  

                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描该包 -->
<mvc:annotation-driven />
<!-- 配置控制器的包 -->
<context:component-scan base-package="com.test.controller" />
<bean id="ViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean><!-- 视图解析器,我们的controller中可能含有普通的servlet,需要用来解析view,这里也可以不要这个 -->

</beans>

然后编写控制层文件

package com.test.controller;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import com.test.service.Teacherservicesupport;

@Controller

public class TeacherController {

@Autowired

private Teacherservicesupport support;

@RequestMapping("getList.do")//声明访问的路径

@ResponseBody//表明为ajax请求

public String test1(){

     return null;//根据自己的需要编写实际的函数

}

}

七、编写我们的web.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<welcome-file-list>
<welcome-file>Tclass.jsp</welcome-file>
</welcome-file-list>

<!-- 设置mybatis和service的配置文件路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-mybatis.xml,classpath:config/spring-service.xml</param-value><!-- 这里配置的是前面的配置文件的路径 -->
</context-param>

<!-- Spring监听器项目加载 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Spring MVC DispatcherServlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springfra
9086
mework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-controller.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<!-- LOG4J的配置文件 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:config/log4j.properties</param-value>
</context-param>
<!-- 定义LOG4J监听器 -->   
<listener>   
  <listener-class>   
org.springframework.web.util.Log4jConfigListener   
  </listener-class>   
</listener> 

<!-- 编码过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!-- 防止Spring内存溢出监听器 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>

</web-app>

以上全部完成后,整个框架就完成了,我们就可以在对应的包中编写代码,实现想要的功能了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: