ssm整合
来源:互联网 发布:阿里大数据平台建成 编辑:程序博客网 时间:2024/05/21 19:34
1.搭建开发环境,导入相关jar包,40个jar包的百度云(http://pan.baidu.com/s/1cAK4W2)
包含mybatis核心包和mybatis依赖包
mybatis与spring整合包
spring的jar包(包括springmvc的jar包)
数据库驱动包
第三方数据库连接池
2.配置文件
mybatis/SqlMapConfig.xml---mybatis全局配置文件
spring/ applicationContext- dao.xml---spring和mybatis整合的配置(SqlSessionFactory、mapper配置)(dao层)
spring/ applicationContext-service.xml---配置业务接口(service层)
spring/applicationContext.xml---spring配置文件(配置公用内容:数据源)
spring/springmvc.xml----------springmvc的全局配置文件
db.properties—数据库连接参数
log4j.properties---日志 配置文件
3.工程结构
4.整合的思路以及步骤
整合步骤:
1、 整合持久层
Mybatis和spring整合
整合目标:
加载数据库参数,数据库连接池交给spring创建,在applicationContext.xml中配置
sqlSessionFactoryBean和xxxdao交给spring创建,在applicationContext-dao.xml配置
SqlMapConfig.xml只需要加载po的映射文件
2、 整合业务层
Spring管理service
整合目标:
Service通过spring调用dao,在applicationContext-service.xml中配置
3、 整合控制层
因为springmvc是spring一个模块,只要加入jar包,配置springmvc.xml和web.xml即可。
整合目标:action中通过spring调用service
5.整合持久层
dao交给spring管理
配置数据源
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-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/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd "><!-- 加载数据库参数,用户 密码 等等 --><context:property-placeholder location="classpath:db.properties"/><!-- 使用第三方的数据库连接池dbcp --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><!-- 这里用set方法进行注入 --><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><!-- 开发阶段数据库最大连接数建议设置小一点够用即可,设置为3 --><property name="maxActive" value="${jdbc.maxActive}" /><property name="maxIdle" value="${jdbc.maxIdle}" /></bean></beans>
db.properties
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatisjdbc.username=rootjdbc.password=rootjdbc.maxActive=3jdbc.maxIdle=1
SqlMapConfig.xml
这里默认已经创建了User.java
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 配置映射文件 --><mappers><mapper resource="sqlmap/User.xml"/></mappers></configuration>
User.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
让spring管理SqlSessionFactory
applicationContext-dao.xml
<!-- 配置SqlSessionFactory --><bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 数据源 --><property name="dataSource" ref="dataSource"/><!-- 配置SqlMapConfig.xml --><property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/></bean><!-- 配置dao --><bean id="userDao" class="com.mo.dao.UserDaoImpl"><!-- 注入会话工厂 上面 sqlSessionFactoryBean已经注入容器--><property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/></bean>
9.开发dao层
写dao接口和dao实现类
编写dao的实现类,继承SqlSessionDaoSupport
UserDaoImpl.java
/** * *在这里继承 SqlSessionDaoSupport,SqlSessionDaoSupport中很多东西 *例如sqlSession等,UserDaoImpl都可以使用,比较方便 * */public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{public User findById(int id) {//创建SqlSessionSqlSession sqlSession = this.getSqlSession();User user = (User)sqlSession.selectOne("test.findUserById", id);return user;}}
定义User.xml
<mapper namespace="test"><select id="findUserById" parameterType="int" resultType="com.mo.po.User">SELECT * FROM USER WHERE id = #{id}</select></mapper>
SqlMapConfig.xml中配置User.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 配置映射文件 --><mappers><mapper resource="sqlmap/User.xml"/></mappers></configuration>
在applicationContext-dao.xml配置dao:
<!-- 配置dao --><bean id="userDao" class="com.mo.dao.UserDaoImpl"><!-- 注入会话工厂 上面 sqlSessionFactoryBean已经注入容器--><property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/></bean>
测试dao层
public class TestDao {@Testpublic void test(){ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"spring/applicationContext.xml","spring/applicationContext-dao.xml"});UserDao userDao = (UserDao)context.getBean("userDao");User user = (User)userDao.findById(1);System.out.println(user);}}
10.整理业务层
Spring管理service
整合目标:
Service通过spring调用dao,在applicationContext-service.xml中配置
写service接口和service实现类
public class UserServiceImpl implements UserService{@Resource(name="userDao") //这里需要在applicationContext-service.xml中启动注解的驱动 private UserDao userDao;public User findUserById(int id){return userDao.findById(id);}}
将service讲给spring管理,在applicationContext-service.xml中配置
<!-- 启动注解的驱动 --> <context:annotation-config/> <!-- 这是service层 --><bean id="userService" class="com.mo.service.UserServiceImpl"></bean>
测试service层,这时候需要加载3个配置文件
public class TestService {@Testpublic void test(){ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"spring/applicationContext.xml","spring/applicationContext-dao.xml","spring/applicationContext-service.xml"});UserService userService = (UserService)context.getBean("userService");User user = (User)userService.findUserById(1);System.out.println(user);}}
11整合控制层
整合目标:action中通过spring调用service
配置springmvc.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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 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.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd "> <!-- Action控制器 ,扫描 com.mo.action包中有注解的类 并使它成为一个控制器--> <context:component-scan base-package="com.mo.action"/> <!-- 基于注解的映射器(可选) --> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <!-- 基于注解的适配器(可选) --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> <!-- 视图解析器(可选) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/> </beans>
在web.xml中配置前端控制器,同时加载spring容器
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- 加载spring容器 --><context-param><param-name>contextConfigLocation</param-name><!-- 这里使用了通配符 --><param-value>/WEB-INF/classes/spring/applicationContext.xml,/WEB-INF/classes/spring/applicationContext-*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> <!-- 注册springmvc框架核心控制器 --> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- 自定义加载配置文件--> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app>
编写action类
目标:通过调用userService取出用户信息,在页面显示。
UserAction.java
@Controller//注意:这里需要在springmvc.xml中配置context:component-scan,启动注解自动扫描public class UserAction {@Autowired//注入UserService,spring容器中已经装配了private UserService userService;@RequestMapping(value="queryUser")public String queryUser(Model model){User user = (User) userService.findUserById(1);model.addAttribute("user", user);model.addAttribute("message", "ssm整合");return "/jsp/1.jsp";}}
编写页面
1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>ssm整合</title> </head> <body> ${user.username} ${message} </body> </html>
最后tomcat部署访问
http://localhost:8080/ssm/queryUser.action
从数据库读取了数据
ssm整合完成
- SSM整合
- SSM整合
- SSM整合
- ssm整合
- SSM整合
- ssm整合
- ssm整合
- SSM整合
- SSM整合
- SSM整合
- SSM整合
- ssm整合
- ssm整合
- ssm整合
- ssm整合
- ssm整合
- ssm整合
- ssm整合
- 如何将tomcat webapp目录下的项目 路径改为 / (原访问路径需要加项目名)
- 山东省第四届ACM大学生程序设计竞赛 Thrall’s Dream(单源强连通分量)
- 《Android攻防实战》度数笔记——Android安全评估工具——Drozer (日后学习)
- 缓存技术概述
- 5.5
- ssm整合
- webstorm配置编译sass的输出目录
- js返回上一页并刷新的几种方法
- Python 3基础教程1-环境安装和运行环境
- Canvas绘图的使用(一)
- 微信小程序引用fontawesome字体
- Angular4.0 起步
- 利用keepalived构建双主MySQL
- Tensorflow卷积操作tf.nn.conv2d的理解