SSM框架整合
来源:互联网 发布:js中两个时间比较大小 编辑:程序博客网 时间:2024/05/18 09:09
SSM整合
SSM框架源码链接:http://pan.baidu.com/s/1qYo2iFq 密码:iur3
1、导入相关jar包(所有的jar包都导入了)
*jar包有些没用的这里没有进行删除
2、配置相关配置文件,
(1)web.xml
<display-name>NA_web</display-name>
<!--spring的配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- springmvc配置-->
<servlet>
<!--springmvc 的核心是dispatcherServlet,它负责控制整个页面的请求路径 -->
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--初始化参数,相当于src目录 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:na.xml</param-value>
</init-param>
<!-- 表示启动容器时初始化Servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 拦截器,拦截所有以.do结尾的请求 -->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!--处理从页面传递中文到后台而出现的中文乱码问题 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
(2).applicationcontext.xml(spring的配置)
<!-- 配置dataSource -->
<!-- 获取配置文件 -->
<beanid="config"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<propertyname="locations">
<list>
<value>classpath:db-config.properties</value>
</list>
</property>
</bean>
<!-- 获取数据源 -->
<beanid="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<propertyname="driverClassName"value="${db.dirverClass}"/>
<propertyname="url"value="${db.url}"/>
<propertyname="username"value="${db.username}"/>
<propertyname="password"value="${db.password}"/>
</bean>
<beanid="mybatisConfig"class="org.springframework.core.io.ClassPathResource">
<constructor-argindex="0"value="mybatis.cfg.xml"></constructor-arg>
</bean>
<!-- 配置工厂 -->
<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
<propertyname="dataSource"ref="dataSource"></property>
<propertyname="configLocation"ref="mybatisConfig"></property>
</bean>
<!-- 配置声明式事务 -->
<!-- 配置事务管理器 -->
<beanid="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<propertyname="dataSource"ref="dataSource"></property>
</bean>
<tx:adviceid="txAdvice"transaction-manager="txManager">
<tx:attributes>
<tx:methodname="save"propagation="REQUIRED"/>
<tx:methodname="get"read-only="true"/>
<tx:methodname="*"propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcutexpression="execution(* com.na.service.impl.*.*(..))"
id="pointcut"/>
<aop:advisoradvice-ref="txAdvice"pointcut-ref="pointcut"/>
</aop:config>
<context:component-scanbase-package="com.na"></context:component-scan>
(3)、springmvc.xml配置(本项目中用的是na.xml)
<!-- 配置视图解析器 -->
<beanid="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 结果视图的前缀 -->
<propertyname="prefix"value="/WEB-INF/jsp/"/>
<!-- 结果视图的后缀 -->
<propertyname="suffix"value=".jsp"/>
</bean>
<!--处理直接返回json格式字符串 -->
<beanid="stringHttpMessageConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<propertyname="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 处理json -->
<beanid="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
</bean>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<propertyname="messageConverters">
<list>
<refbean="stringHttpMessageConverter"/>
<refbean="mappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
<!-- 配置拦截器 -->
<!-- 可以配置很多个拦截器 -->
<mvc:interceptors>
<!-- 其中的一个拦截器 -->
<mvc:interceptor>
<!-- /**表示路径及其子路径下进行拦截如果是/admin/*会拦截admind的子路径例如/admin/list但是admin/list/test就不会被拦截
而/admin/**则会拦截所有的 -->
<mvc:mappingpath="/**"/>
<!-- 拦截器所在的位置 -->
<beanclass="com.na.intercept.NaIntercept">
<!-- 注入,loedPass就是com.na.intercept.NaIntercept类中定义的属性名 -->
<propertyname="loedPass">
<!--为loedPass赋值。loedPass为list类型 -->
<list>
<value>login.do</value>
<value>welcome.do</value>
<value>list.do</value>
</list>
</property>
</bean>
</mvc:interceptor>
</mvc:interceptors>
<context:component-scanbase-package="com.na.controller"/>
(4)mybatis.xml配置(mybatis.cfg.xml中配置)
<configuration>
<typeAliases>
<packagename="com.na.vo"/>
</typeAliases>
<mappers>
<!-- 所有mappers填写文件 -->
<mapperresource="com/na/vo/user.mapper.xml"/>
</mappers>
</configuration>
3、项目中需要创建的包以及类
(1)整体结构。其中jdbc包下的类是测试数据库连接的
(2)实体类创建
user.java
注意实体类的有参和无参构造方法以及相应的set、get方法都要有,因为不是重点所以此处省略
user.mapper.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEmapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="com.na.dao.UserDao">
<selectid="list"resultType="com.na.vo.User">
select * from user
</select>
</mapper>
(3)Dao层以及实现层
public interface UserDao {
public List<User> list();
}
@Repository("userDao")
public class UserDaoImpl extends SqlSessionDaoSupportimplements UserDao {
@Autowired
@Override
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
super.setSqlSessionFactory(sqlSessionFactory);
};
public List<User> list() {
return getSqlSession().selectList("com.na.dao.UserDao.list");
}
}
(4)Service层以及实现层
UserService.java
public interface UserService {
public List<User> list();
}
UserServiceImpl.java
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDaouserDao;
/*public UserDao getUserDao() {
return userDao;
}
*/
public void setUserDao(UserDao userDao) {
this.userDao =userDao;
}
public List<User> list() {
return userDao.list();
}
}
(5)Controller层
只写userController.java就行其他的是一些小的功能测试点
@Controller
public class UserController {
@Autowired
private UserServiceuserService;
@RequestMapping("/list")
// public String list(Model model){
// model.addAttribute("userList", userService.list());
// return "/list";
// }
public ModelAndView list() {
ModelAndView mav = new ModelAndView("/list");
mav.addObject("userList",userService.list());
return mav;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService =userService;
}
}
(6)jsp界面测试
注意:在jsp文件夹下创建list.jsp,必须在jsp文件夹下创建,因为在na.xml配置的视图解析器就是指向改jsp文件夹的
list.jsp
<%@ page language="java"contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPEhtml PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>框架测试</title>
</head>
<body>
<table>
<tr>
<td>编号</td>
<td>姓名</td>
<td>密码</td>
</tr>
<c:forEachitems="${userList}"var="b">
<tr>
<td>${b.id }</td>
<td>${b.name }</td>
<td>${b.pwd }</td>
</tr>
</c:forEach>
<tr></tr>
</table>
</body>
</html>
到此。springmvc+spring+mybatis框架就全部完成,因为篇幅的问题没有做过多的解释,具体的解析参照源码,源码中还有其他的知识点,可以只看文章中列出的地方,其他的代码可以忽略
- SSM:简单SSM框架整合
- SSM框架整合
- ssm框架整合
- SSM框架整合例子
- SSM框架整合
- SSM框架整合
- ssm框架整合
- SSM框架整合
- SSM 框架整合
- ssm框架总体整合
- SSM框架整合
- SSM 框架整合案例
- SSM框架整合
- SSM框架整合
- SSM框架整合
- SSM框架整合
- ssm框架整合开发
- ssm框架整合
- 设计模式~策略模式
- visibility:hidden的元素绑定click event会起作用吗
- NOIP 2000 计算器的改良 题解
- S5PV210启动过程详解
- margin:auto与text-align:center
- SSM框架整合
- 单例模式
- elementaryOS 给firefox添加launcher
- 转 C++ 11 Lambda表达式
- gulp详细入门教程
- elasticsearch安装 2.3.3
- Android wifi探究三:Wifi P2P 连接附近设备
- MYSQL EXPLAIN 优化
- Hibernate与 MyBatis的比较