SSM框架整合

来源:互联网 发布:js中两个时间比较大小 编辑:程序博客网 时间:2024/05/18 09:09


SSM整合

SSM框架源码链接:http://pan.baidu.com/s/1qYo2iFq 密码:iur3

1、导入相关jar包(所有的jar包都导入了)

*jar包有些没用的这里没有进行删除

2、配置相关配置文件,

1web.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.xmlspring的配置)

<!-- 配置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赋值。loedPasslist类型 -->

                <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"/>

4mybatis.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

注意实体类的有参和无参构造方法以及相应的setget方法都要有,因为不是重点所以此处省略

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");

   }

 

}

4Service层以及实现层

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;

   }

 

}

 

6jsp界面测试

注意:在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框架就全部完成,因为篇幅的问题没有做过多的解释,具体的解析参照源码,源码中还有其他的知识点,可以只看文章中列出的地方,其他的代码可以忽略

0 0
原创粉丝点击