SSM项目整合

1、基本概念

1.1、Spring

  Spring 是一个开源框架, Spring 是于 2003  年兴起的一个轻量级的 Java  开发框架,由 Rod Johnson  在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。 Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而, Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。 简单来说, Spring 是一个轻量级的控制反转( IoC )和面向切面( AOP )的容器框架。

1.2、SpringMVC

Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。 Spring MVC  分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

1.3、MyBatis

MyBatis  本是 Apache 的一个开源项目iBatis , 2010 年这个项目由 apache software foundation  迁移到了 google code ,并且改名为 MyBatis  。 MyBatis 是一个基于 Java 的 持久层框架。 iBATIS 提供的持久层框架包括 SQL Maps 和 Data Access Objects ( DAO ) MyBatis  消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。 MyBatis  使用简单的  XML 或注解用于配置和原始映射,将接口和  Java  的 POJOs ( Plain Old Java Objects ,普通的  Java 对象)映射成数据库中的记录。

2、SSM 项目整合——系统结构图

3、SSM项目结构搭建

3.1、需要的Jar包

  ①Spring:

    spring-aop-4.3.0.RELEASE.jar
    spring-aspects-4.3.0.RELEASE.jar
    spring-beans-4.3.0.RELEASE.jar
    spring-context-4.3.0.RELEASE.jar
    spring-context-support-4.3.0.RELEASE.jar
    spring-core-4.3.0.RELEASE.jar
    spring-expression-4.3.0.RELEASE.jar
    spring-jdbc-4.3.0.RELEASE.jar
    spring-tx-4.3.0.RELEASE.jar
    spring-web-4.3.0.RELEASE.jar
    spring-webmvc-4.3.0.RELEASE.jar

    spring-webmvc-portlet-4.3.0.RELEASE.jar
    spring-websocket-4.3.0.RELEASE.jar

    com.springsource.net.sf.cglib-2.2.0.jar
    com.springsource.org.aopalliance-1.0.0.jar
    com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
    commons-logging-1.2.jar

  ③MyBatis:

    mybatis-3.1.1.jar

    log4j-1.2.16.jar
    mybatis-spring-1.2.1.jar

  ④文件上传/下载:

    commons-fileupload-1.2.2.jar
    commons-io-2.4.jar

  ⑤C3P0数据源:

    c3p0-0.9.5.1.jar

    mchange-commons-java-0.2.10.jar

    classmate-0.8.0.jar

  ⑥MySQL:

    mysql-connector-java-5.0.8-bin.jar

  ⑦JSTL:

    taglibs-standard-compat-1.2.5.jar
    taglibs-standard-impl-1.2.5.jar
    taglibs-standard-jstlel-1.2.5.jar
    taglibs-standard-spec-1.2.5.jar

  ⑧JSON:

    jackson-annotations-2.6.0.jar
    jackson-core-2.6.0.jar
    jackson-databind-2.6.0.jar

  ⑨Hibernate Validate:

    hibernate-validator-4.3.0.Final.jar

    validation-api-1.0.0.GA.jar
    validation-api-1.1.0.CR1.jar

    jboss-logging-3.1.0.CR2.jar
    jboss-logging-3.1.1.GA.jar

3.2、SSM项目的目录结构

    

3.3、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>SSM_01</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!-- 1、配置 Spring 配置文件的名称和位置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</context-param>
<!-- ContextLoaderListener:监听器 -->
<!--当 web项目已启动的时候,会把 Spring IOC 容器获取到,并放入 application 域中 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 2、配置 SpringMVC 的前端控制器(要过滤所有的请求) -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置 SpringMVC 配置文件的名称和位置 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc/springMvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<!-- SpringMVC 的前端控制器过滤所有的请求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>

<!-- 3、配置 CharacterEncodingFilter:映射出现乱码 -->
<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>

<!-- 4、配置 HiddenHttpMethodFilter:支持 REST 风格的 CRUD -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

3.4、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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 1、配置自动扫描的(Spring IOC 容器不扫描Controller) -->
<context:component-scan base-package="cn.com.zfc.ssm">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Component" />
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Repository" />
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Service" />
</context:component-scan>

<!-- 2.加载配数据源配置文件 db.properties -->
<context:property-placeholder location="classpath:db.properties" />

<!-- 3、配置 C3P0 数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
<property name="jdbcUrl" value="${jdbcUrl}"></property>
<property name="driverClass" value="${driverClass}"></property>
</bean>

<!-- 4.事务管理器 (JDBC) -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>

<!-- 5.启动声明式事务驱动 -->
<tx:annotation-driven transaction-manager="transactionManager" />

<!-- MyBatis 整合 spring -->
<!-- 1. spring 通过 sqlSessionFactoryBean 获取 sqlSessionFactory 工厂类 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!-- 使用mapper 时可以实用化别名(BeanName) -->
<property name="typeAliasesPackage" value="cn.com.zfc.ssm.entity"></property>
</bean>

<!-- 2.打开 sqlSession 会话对象(扫描映射配置文件:XXXmapper.xml/XXXmapper.java) -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.com.zfc.ssm.dao" />
<!-- 注意使用 sqlSessionFactoryBeanName 避免出现spring 扫描组件失效问题 -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

</beans>

3.5、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:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">

<!-- 1、配置自动扫描的包,SpringMVC IOC 容器只扫描Controller -->
<context:component-scan base-package="cn.com.zfc.ssm">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>

<!-- 2、配置视图解析器 -->
<bean id="internalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

<!-- 3.处理静态资源,默认 Servlet 处理 -->
<mvc:default-servlet-handler />

<!-- 4.启动 MVC 注解驱动 -->
<mvc:annotation-driven />

<!--5、启用AOP -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
</beans>

3.6、db.properties

user=root
password=root
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/ssm_01

3.7、log4j.properties

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

3.8、实体类:User.java

package cn.com.zfc.ssm.entity;

import org.springframework.stereotype.Component;

/**
* 定义实体类:如果实体类的属性名和数据表中的字段名不一致,则需要在 映射文件中配置 resultMap
*
* @author FuchangZhang
*
*/
@Component
public class User {
  private Integer id;
  private String userName;
  private String userSex;
  private Integer userAge;

  public User() {
    super();
  }

  public User(String userName, String userSex, Integer userAge) {
    super();
    this.userName = userName;
    this.userSex = userSex;
    this.userAge = userAge;
  }

  public User(Integer id, String userName, String userSex, Integer userAge) {
    super();
    this.id = id;
    this.userName = userName;
    this.userSex = userSex;
    this.userAge = userAge;
  }

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }

  public String getUserSex() {
    return userSex;
  }

  public void setUserSex(String userSex) {
    this.userSex = userSex;
  }

  public Integer getUserAge() {
    return userAge;
  }

  public void setUserAge(Integer userAge) {
    this.userAge = userAge;
  }

  @Override
  public String toString() {
    return "User [id=" + id + ", userName=" + userName + ", userSex=" + userSex + ", userAge=" + userAge + "]";
  }

}

3.9 UserMapper.java

package cn.com.zfc.ssm.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import cn.com.zfc.ssm.entity.User;

/**
* 定义接口:方法名得和相应的 mapper.xml 中的 id 保持一致
*
* @author FuchangZhang
*
*/
@Repository
public interface UserMapper {

  // 添加一条用户信息
  public int save(User user);

  // 删除一条用户信息
  public int delete(int id);

  // 修改一条用户信息
  public int update(User user);

  // 查询一条用户信息
  public User getUser(int id);

  // 查询全部用户信息
  public List<User> getUsers();

}

3.10 UserMapper.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="cn.com.zfc.ssm.dao.UserMapper">
<!-- 结果集映射:映射实体类属性与数据表字段名 -->
<resultMap type="User" id="userResultMap">
<id property="id" column="id" />
<result property="userName" column="user_name" />
<result property="userSex" column="user_sex" />
<result property="userAge" column="user_age" />
</resultMap>

<!-- 参数映射:映射实体类属性与数据表字段名 -->
<!-- resultMap:resultMap的id ,property:resultMap的property,即实体类中的属性 -->
<parameterMap type="User" id="userParameterMap">
<parameter property="id" resultMap="userResultMap" />
<parameter property="userName" resultMap="userResultMap" />
<parameter property="userSex" resultMap="userResultMap" />
<parameter property="userAge" resultMap="userResultMap" />
</parameterMap>

<!-- 添加一个用户信息 -->
<insert id="save" parameterMap="userParameterMap">
insert into user_info
(user_name,user_sex,user_age)
values
(#{userName},#{userSex},#{userAge})
</insert>
<!-- 删除一个用户信息 -->
<delete id="delete" parameterType="int">
delete from user_info
where
id=#{id}
</delete>

<!-- 修改一个用户信息 -->
<update id="update" parameterMap="userParameterMap">
update user_info
set
user_name=#{userName},user_sex=#{userSex},user_age=#{userAge}
where
id=#{id}
</update>

<!-- 查询一个用户信息 -->
<select id="getUser" parameterType="int" resultMap="userResultMap">
select * from
user_info
where
id=#{id}
</select>

<!-- 查询全部用户信息 -->
<select id="getUsers" resultMap="userResultMap">
select * from user_info
</select>
</mapper>

3.11、UserService.java

package cn.com.zfc.ssm.service;

import java.util.List;

import org.springframework.stereotype.Repository;

import cn.com.zfc.ssm.entity.User;

@Repository
public interface UserService {
// 添加一条用户信息
public boolean add(User user);

// 删除一条用户信息
public boolean delete(int id);

// 修改一条用户信息
public boolean update(User user);

// 查询一条用户信息
public User queryOne(int id);

// 查询全部用户信息
public List<User> queryAll();
}

3.12、UserServiceImpl.java

package cn.com.zfc.ssm.service.impl;

import java.util.List;

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

import cn.com.zfc.ssm.dao.UserMapper;
import cn.com.zfc.ssm.entity.User;
import cn.com.zfc.ssm.service.UserService;

@Service("userService")
public class UserServiceImpl implements UserService {

@Autowired
private UserMapper userMapper;
private int result;

@Override
public boolean add(User user) {
result = userMapper.save(user);
if (result > 0) {
return true;
} else {
return false;
}
}

@Override
public boolean delete(int id) {
result = userMapper.delete(id);
if (result > 0) {
return true;
} else {
return false;
}
}

@Override
public boolean update(User user) {
result = userMapper.update(user);
if (result > 0) {
return true;
} else {
return false;
}
}

@Override
public User queryOne(int id) {
User user = userMapper.getUser(id);
return user;
}

@Override
public List<User> queryAll() {
List<User> users = userMapper.getUsers();
return users;
}

}

3.13、UserHandler.java

package cn.com.zfc.ssm.handler;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.com.zfc.ssm.entity.User;
import cn.com.zfc.ssm.service.UserService;

@Controller
public class UserHandler {

@Autowired
private UserService userService;

  // 添加页面
  @RequestMapping("/addView")
  public String addView(Map<String, Object> map) {
    map.put("user", new User());
    return "addUser";
  }

  // 保存操作
  @RequestMapping("/addUser")
  public String addUser(User user) {
    if (userService.add(user)) {
      return "success";
    } else {
      return "redirect:/queryAll";
    }
  }

  // 删除操作
  @RequestMapping("/delete")
  public String delete(int id) {
    if (userService.delete(id)) {
      System.out.println("删除成功");
    } else {
      System.out.println("删除失败");
    }
    return "redirect:/queryAll";
  }

  // 查询一个操作
  @RequestMapping("/queryOne")
  public String queryOne(int id, Map<String, Object> map) {
    map.put("user", userService.queryOne(id));
    return "update";
  }

  // 修改操作
  @RequestMapping("/update")
  public String update(User user, Map<String, Object> map) {
    if (userService.update(user)) {
      System.out.println("修改成功");
      return "redirect:/queryAll";
    } else {
      System.out.println("修改失败");
      map.put("user", userService.queryOne(user.getId()));
      return "update";
    }
  }

  // 查询全部操作
  @RequestMapping("/queryAll")
  public String queryAll(Map<String, Object> map) {
    map.put("users", userService.queryAll());
    return "queryAll";
  }
}

3.14、index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/addView">添加用户</a>
<hr />
<a href="${pageContext.request.contextPath}/queryAll">查询全部</a>
</body>
</html>

3.15、addUser.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户添加</title>
</head>
<body>
<h1>用户添加</h1>
<form:form action="addUser" method="post" modelAttribute="user">

UserName:<form:input path="userName" />
<hr />
<%
Map<String, Object> sexes = new HashMap<>();
sexes.put("男", "男");
sexes.put("女", "女");
request.setAttribute("sexes", sexes);
%>
Sex:
<form:radiobuttons path="userSex" items="${sexes}" />
<hr />
UserAge:<form:input path="userAge" />
<hr />
<input type="submit" value="添加" />
</form:form>
</body>
</html>

3.16、success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Success Page!!!</h1>
</body>
</html>

3.17、queryAll.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
table, tr, th, td {
border: 1px solid black;
}

table {
width: 80%;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>ID</th>
<th>UserName</th>
<th>UserSex</th>
<th>UserAge</th>
<th>Operator</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${requestScope.users.size()>0 }">
<c:forEach items="${requestScope.users}" var="user">
<tr>
<td>${user.id }</td>
<td>${user.userName }</td>
<td>${user.userSex }</td>
<td>${user.userAge }</td>
<td><a
href="${pageContext.request.contextPath}/delete?id=${user.id}">Delete</a>
<a
href="${pageContext.request.contextPath}/queryOne?id=${user.id}">Update</a>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>没有人</c:otherwise>
</c:choose>
</tbody>
</table>

</body>
</html>

3.18、update.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>用户修改</h1>
<form:form action="${pageContext.request.contextPath}/update"
method="post" modelAttribute="user">
<!-- 隐藏域:用来存储要修改的 user 的 id -->
<input type="hidden" name="id" value="${user.id}" />
UserName:<form:input path="userName" />
<hr />
<%
Map<String, Object> sexes = new HashMap<>();
sexes.put("男", "男");
sexes.put("女", "女");
request.setAttribute("sexes", sexes);
%>
Sex:
<form:radiobuttons path="userSex" items="${sexes}" />
<hr />
UserAge:<form:input path="userAge" />
<hr />
<input type="submit" value="修改" />
</form:form>
</body>
</html>

注:由于本人技术有限,此文章仅供参考

    

SSM项目整合基本步骤的更多相关文章

  1. SSH项目整合基本步骤

    SSH项目整合基本步骤 一.项目简介 该项目是由Spring4.Struts2 以及 Hibernate4 整合搭建的 web 项目,把Action分开编写,便于查看,使用JSTL.EL标签. 二.项 ...

  2. SSM项目整合第一步 注册登陆实现

    SSM项目整合第一步  注册: 项目目录: 一.数据库建表: 源码: ; -- ---------------------------- -- Table structure for t_user - ...

  3. spring4+hibernate4+struts2项目整合的步骤及注意事项

    首先,在整合框架之前,我们需要知道Spring框架在普通Java project和Web project中是略有不同的. 这个不同地方就在于创建IOC容器实例的方式不同,在普通java工程中,可以在m ...

  4. SSM项目整合Quartz

    一.背景 SSM项目中要用到定时器,初期使用Timer,后来用spring 的schedule,都比较简单,所以功能比较单一而且他们不能动态的配置时间.后来就研究quartz,准备整合到项目中.Qua ...

  5. SSM项目整合纪实

    一 前 言 本来是为了探究一些功能性问题,需要一套完整的项目架构,本以为SSM用过那么多了,轻松搭建不在话下,但是过程中还是遇到一些问题,踩到一些未曾料想的坑.博文以搭建极简架构为目的,附带一些关键阐 ...

  6. SSM 项目整合

    SSM整合:spring + springmvc + mybatis 1.1 生成Maven项目:ar_ssm 1.2 添加jar包 <dependencies> <!-- 单元测试 ...

  7. SSM框架整合 详细步骤(备注) 附源码

    整合思路 将工程的三层结构中的JavaBean分别使用Spring容器(通过XML方式)进行管理. 整合持久层mapper,包括数据源.会话工程及mapper代理对象的整合: 整合业务层Service ...

  8. Solr专题(三)SSM项目整合Solr

    一.环境配置 所需要的jar包: org.apache.solr.solr-solrj maven依赖: <!-- https://mvnrepository.com/artifact/org. ...

  9. ssm项目整合shiro

    pom.xml <properties> <shiro.version>1.2.2</shiro.version> </properties> < ...

随机推荐

  1. Bootstrap框架的要点--栅格系统

    不同的公司要求使用框架有所不同,而Bootstrap框架在工作中使用频次较高,其中栅格系统在这一框架中的地位不容小觑,下面我们开始聊聊它吧. 简单介绍: Bootstrap提供了一套响应式.移动设备优 ...

  2. Ant学习总结1

    一.Ant简介 Ant是用来编译/运行/测试java程序,构建.包装和发布过程中几乎每一件事都可以由Ant的任务来处理. 二.Ant管理项目    当开始一个新的项目时,首先应该编写Ant的构建文件, ...

  3. 使用hubuild,mui开发微信app—首页(一)

    写在前面 本系列文章我将介绍一下从零开始利用hubuild,mui实现微信app的开发,该系列是个人学习记录,所以在每篇文章中,都是从怎么去实现开始讲解,然后再把实例中涉及知识点做一个概述. 创建一个 ...

  4. php批量删除,批量操作

    批量删除多条记录,对于比较多的信息,如果没有批量删除功能是非常麻烦的. 1.从数据库中拿一张表过来,写个复选框进行选择   可以加全选复选框 连接数据库什么的都不写啦 代码: <form act ...

  5. 项目架构开发:数据访问层之UnitOfWork

    接上文 项目架构开发:数据访问层之IQuery 本章我们继续IUnitOfWork的开发,从之前的IRepository接口中就可以看出,我们并没有处理单元事务, 数据CUD每次都是立即执行的,这样有 ...

  6. 上传图片,多图上传,预览功能,js原生无依赖

    最近很好奇前端的文件上传功能,因为公司要求做一个支持图片预览的图片上传插件,所以自己搜了很多相关的插件,虽然功能很多,但有些地方不能根据公司的想法去修改,而且需要依赖jQuery或Bootstrap库 ...

  7. Jquery中的重置

     提交表单是像下面这样的:代码 $('#myform').submit() $('#myform').submit() 所以,想当然的认为,重置表单,当然就是像下面这样子喽:代码 $('#myform ...

  8. unity3d教程-01-安装及使用Unity

    我们前往unity官网:https://unity3d.com/cn/ 选择下载个人版,免费使用,功能齐全,就是在应用启动时有unity的动画 支持正版从我做起 整个安装过程需要网络的支持 下载安装程 ...

  9. [BNUZOJ1261][ACM][2016北理校赛]方块消除(栈,字符串)

    玩过方块消除游戏吗?现在规定当有两个或两个以上相邻且颜色相同的方块在一起的时候,它们就会产生消除反应.当存在多个消除反应同时产生时,最下的反应先执行.现在只给你其中一列,求最后剩下的方块结果. 输入要 ...

  10. (九)javaScript的基本使用

    <script type="text/javascript"> var userName; var userAge; function interInfo(){ use ...