WEBAPP开发教程SSM(一)框架的整合
凌雪 2018-10-11 来源 :网络 阅读 1294 评论 0

摘要:本文将带你了解WEBAPP开发教程SSM(一)框架的整合,希望本文对大家学WEBAPP有所帮助。

本文将带你了解WEBAPP开发教程SSM(一)框架的整合,希望本文对大家学WEBAPP有所帮助。


开发环境:系统:window7IDE:Myeclipse2014JDK版本:1.8tomcat:8maven:3.3新建SSM项目:myeclipse配置maven方式请自行百度,新建maven项目,选择webapp。新建的项目目录基本机构修改pom.xml文件这里主要是整合过程,maven的讲解就不细说了。<project   xmlns="//maven.apache.org/POM/4.0.0"   xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="//maven.apache.org/POM/4.0.0   //maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.w3cjava</groupId> <artifactId>W3cJavaSSM</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>W3cJavaSSM</name> <url>//www.w3cjava.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.1.4.RELEASE</spring.version> <jackson.version>2.5.0</jackson.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency>       <!-- spring   --> <dependency>       <groupId>org.springframework</groupId>     <artifactId>spring-core</artifactId>       <version>${spring.version}</version> </dependency> <dependency>     <groupId>org.springframework</groupId>       <artifactId>spring-beans</artifactId>       <version>${spring.version}</version> </dependency> <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-context</artifactId>     <version>${spring.version}</version> </dependency> <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-tx</artifactId>       <version>${spring.version}</version> </dependency> <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-web</artifactId>       <version>${spring.version}</version> </dependency> <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-test</artifactId>     <version>${spring.version}</version>       <scope>test</scope> </dependency> <!-- 使用SpringMVC需配置 --> <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-webmvc</artifactId>       <version>${spring.version}</version> </dependency> <!--   关系型数据库整合时需配置 如hibernate jpa等 --> <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-orm</artifactId>       <version>${spring.version}</version> </dependency> <dependency>       <groupId>org.mybatis</groupId>     <artifactId>mybatis-spring</artifactId>       <version>1.2.4</version> </dependency> <!--   log4j --> <dependency>       <groupId>log4j</groupId>       <artifactId>log4j</artifactId>       <version>1.2.17</version> </dependency> <!--   mysql连接   --> <dependency>       <groupId>mysql</groupId>       <artifactId>mysql-connector-java</artifactId>     <version>5.1.34</version> </dependency> <dependency>       <groupId>org.mybatis</groupId>       <artifactId>mybatis</artifactId>       <version>3.3.1</version> </dependency> <dependency>       <groupId>com.alibaba</groupId>     <artifactId>druid</artifactId>       <version>1.0.18</version> </dependency> <!--   json --> <dependency>       <groupId>com.alibaba</groupId>       <artifactId>fastjson</artifactId>       <version>1.2.3</version> </dependency> <dependency>       <groupId>com.fasterxml.jackson.core</groupId>       <artifactId>jackson-annotations</artifactId>     <version>${jackson.version}</version> </dependency> <dependency>       <groupId>com.fasterxml.jackson.core</groupId>     <artifactId>jackson-core</artifactId>       <version>${jackson.version}</version> </dependency> <dependency>       <groupId>com.fasterxml.jackson.core</groupId>       <artifactId>jackson-databind</artifactId>       <version>${jackson.version}</version> </dependency> <!--   aop --> <dependency>       <groupId>org.aspectj</groupId>       <artifactId>aspectjweaver</artifactId>     <version>1.8.4</version> </dependency> <!--   servlet -->  <dependency>       <groupId>javax.servlet</groupId>       <artifactId>jstl</artifactId>       <version>1.2</version> </dependency> <dependency>       <groupId>org.apache.commons</groupId>     <artifactId>commons-lang3</artifactId>       <version>3.4</version> </dependency> <!-- 上传文件   --> <dependency>       <groupId>commons-fileupload</groupId>       <artifactId>commons-fileupload</artifactId>       <version>1.3.1</version> </dependency> </dependencies>      <build> <finalName>W3cJavaSSM</finalName>        <plugins>            <plugin>                  <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <configuration>                      <source>1.7</source>                    <target>1.7</target>                </configuration>            </plugin>        </plugins>    </build>  </project>Spring配置spring-context.xml<?xml   version="1.0" encoding="UTF-8"?><beans   xmlns="//www.springframework.org/schema/beans"   xmlns:xsi="//www.w3.org/2001/XMLSchema-instance" xmlns:context="//www.springframework.org/schema/context"   xmlns:jdbc="//www.springframework.org/schema/jdbc"     xmlns:jee="//www.springframework.org/schema/jee"   xmlns:tx="//www.springframework.org/schema/tx"      xmlns:util="//www.springframework.org/schema/util"   xmlns:task="//www.springframework.org/schema/task"   xsi:schemaLocation=" //www.springframework.org/schema/beans   //www.springframework.org/schema/beans/spring-beans-4.0.xsd //www.springframework.org/schema/context   //www.springframework.org/schema/context/spring-context-4.0.xsd //www.springframework.org/schema/jdbc   //www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd //www.springframework.org/schema/jee   //www.springframework.org/schema/jee/spring-jee-4.0.xsd //www.springframework.org/schema/tx   //www.springframework.org/schema/tx/spring-tx-4.0.xsd //www.springframework.org/schema/util   //www.springframework.org/schema/util/spring-util-4.0.xsd //www.springframework.org/schema/task   //www.springframework.org/schema/task/spring-task-4.0.xsd" default-lazy-init="true">     <!-- 加载配置属性文件 --> <context:property-placeholder   ignore-unresolvable="true"   location="classpath:w3cjava.properties" /> <!-- 使用Annotation自动注册Bean,解决事物失效问题:在主容器中不扫描@Controller注解,在SpringMvc中只扫描@Controller注解。    --> <context:component-scan   base-package="com.w3cjava"><!-- base-package 如果多个,用“,”分隔 --> <context:exclude-filter type="annotation"   expression="org.springframework.stereotype.Controller"/> </context:component-scan> <!--   使用import的方式导入数据库模块配置文件 --> <import   resource="mybatis.xml"/></beans>Mybatis配置mybatis.xmlmybatis.xml在spring-context.xml中已公国import引入,之所以分开配置,主要是考虑到这个文件配置的主要是数据库相关的信息。一些文件配置的细节说明都在xml文件里有说明,就不细说了。<?xml version="1.0"   encoding="UTF-8"?><beans   xmlns="//www.springframework.org/schema/beans"         xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"         xmlns:context="//www.springframework.org/schema/context"         xsi:schemaLocation="//www.springframework.org/schema/beans                          //www.springframework.org/schema/beans/spring-beans-3.1.xsd                          //www.springframework.org/schema/context                          //www.springframework.org/schema/context/spring-context-3.1.xsd">                                                      <bean id="dataSource"   class="com.alibaba.druid.pool.DruidDataSource"          init-method="init"   destroy-method="close">          <!-- 指定连接数据库的驱动   -->        <property   name="driverClassName" value="${jdbc.driverClass}"   />        <property   name="url" value="${jdbc.url}" />        <property   name="username" value="${jdbc.user}" />        <property   name="password" value="${jdbc.password}" />        <!-- 配置初始化大小、最小、最大 -->          <property name="initialSize" value="3"   />        <property   name="minIdle" value="3" />        <property   name="maxActive" value="20" />        <!-- 配置获取连接等待超时的时间 -->          <property name="maxWait" value="60000"   />        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒   -->        <property   name="timeBetweenEvictionRunsMillis" value="60000"   />        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->        <property   name="minEvictableIdleTimeMillis" value="300000"   />        <property   name="validationQuery" value="SELECT 'x'" />        <property   name="testWhileIdle" value="true" />        <property   name="testOnBorrow" value="false" />        <property   name="testOnReturn" value="false" />        <!-- 打开PSCache,并且指定每个连接上PSCache的大小   -->        <property   name="poolPreparedStatements" value="true" />        <property   name="maxPoolPreparedStatementPerConnectionSize"                  value="20"   />        <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->          <property name="filters" value="stat"   />    </bean>    <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->    <bean   id="sqlSessionFactory"   class="org.mybatis.spring.SqlSessionFactoryBean">        <property   name="dataSource" ref="dataSource" />        <!-- 自动扫描mapping.xml文件 -->          <property name="mapperLocations"   value="classpath:mapping/*.xml"></property>    </bean>    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->    <bean   class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <property   name="basePackage" value="com.w3cjava.dao" />        <property   name="sqlSessionFactoryBeanName"   value="sqlSessionFactory"></property>    </bean>    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx   -->    <bean   id="transactionManager"            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property   name="dataSource" ref="dataSource" />    </bean></beans>数据源Properties文件:w3cjava.properties#Mysql驱动jdbc.driverClass=com.mysql.jdbc.Driver#数据源jdbc.url=jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=utf8jdbc.user=rootjdbc.password=123456Log日志配置:log4j.propertieslog4j.rootLogger=debug,   stdout,   logfilelog4j.logger.com.ibatis=DEBUGlog4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUGlog4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUGlog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUGlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUGlog4j.logger.java.sql.ResultSet=DEBUGlog4j.logger.org.springframework=DEBUGlog4j.logger.org.compass=DEBUGlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d   %p [%t] [%c]  -   %m%nlog4j.appender.logfile=org.apache.log4j.RollingFileAppenderlog4j.appender.logfile.File=empi.logweb.xml配置:最后一步,就是web.xml配置了<?xml version="1.0"   encoding="UTF-8"?><web-app   xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"    xmlns="//java.sun.com/xml/ns/javaee"    xmlns:web="//java.sun.com/xml/ns/javaee"    xsi:schemaLocation="//java.sun.com/xml/ns/javaee   //java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   version="2.5"> <display-name>W3cJavaSSM</display-name> <context-param>     <param-name>contextConfigLocation</param-name>     <param-value>classpath:spring-context*.xml</param-value> </context-param> <!--   Spring监听器   --> <listener>     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>     <!-- Spring MVC配置 --> <servlet>       <servlet-name>SpringMVC</servlet-name>       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     <init-param>           <param-name>contextConfigLocation</param-name>           <param-value>classpath:spring-mvc.xml</param-value>     </init-param>       <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping>       <servlet-name>SpringMVC</servlet-name>       <url-pattern>/</url-pattern> </servlet-mapping></web-app>SQL语句:-- ------------------------------   Table structure for `user`-- ----------------------------DROP TABLE IF EXISTS   `user`;CREATE TABLE `user` (  `id`   varchar(255) DEFAULT NULL,  `name`   varchar(255) DEFAULT NULL,  `age`   int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; --   ------------------------------ Records of user--   ----------------------------INSERT INTO `user` VALUES ('1', '1', '1');INSERT   INTO `user` VALUES ('2', '2', '2');POJO层:package com.w3cjava.pojo; public class User{ private String   id; private String name; private Integer age; public String getId() { return   id; } public void setId(String id) { this.id = id; } public String getName()   { return name; } public void setName(String name) { this.name =   name; } public Integer getAge() { return age; } public void setAge(Integer   age) { this.age = age; } }UserMapper层,即Dao层:package   com.w3cjava.dao; import java.util.List; import   org.springframework.stereotype.Component; import com.w3cjava.pojo.User;   @Componentpublic interface UserMapper { public List<User>   getAllUsers(); public User findById(String id);}UserMapper对应的映射文件:UserMapper.xml映射文件UserMapper.xml所在位置在mybatis.xml文件中有配置,一般会选择配置在resources下建立mapping目录下。<?xml version="1.0" encoding="UTF-8"   ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper   3.0//EN" "//mybatis.org/dtd/mybatis-3-mapper.dtd"   ><mapper namespace="com.w3cjava.dao.UserMapper" >    <resultMap   id="BaseResultMap" type="com.w3cjava.pojo.User" >        <id column="id"   property="id" jdbcType="VARCHAR" />        <result column="name"   property="name" jdbcType="VARCHAR" />        <result column="age"   property="age" jdbcType="INTEGER" />    </resultMap>    <sql id="Base_Column_List"   >        id, name, age    </sql>     <select id="findById"   parameterType="String" resultMap="BaseResultMap">        select                 <include   refid="Base_Column_List"/>          from user where id=#{id}      </select>     <select   id="getAllUsers" resultMap="BaseResultMap"   parameterType="Map" >          select        <include   refid="Base_Column_List" />        from user    </select> </mapper>Service层:package com.w3cjava.service;   import java.util.List; import   org.springframework.beans.factory.annotation.Autowired;import   org.springframework.stereotype.Service; import   com.w3cjava.dao.UserMapper;import com.w3cjava.pojo.User; @Servicepublic class   UserService { @Autowired private UserMapper userMapper; public   List<User> getAllUsers(){ return userMapper.getAllUsers(); } public   User findById(String id){ return userMapper.findById(id); }}Controller层:package com.w3cjava.controller;   import java.util.List; import   org.springframework.beans.factory.annotation.Autowired;import   org.springframework.stereotype.Controller;import   org.springframework.ui.Model;import   org.springframework.web.bind.annotation.RequestMapping; import   com.w3cjava.pojo.User;import com.w3cjava.service.UserService;   @Controller@RequestMapping("/user")public class UserController   { @Autowired private UserService   userService; @RequestMapping(value={"list",""}) public   String index(Model model){ List<User> allUsers =   userService.getAllUsers(); model.addAttribute("allUsers",   allUsers); return   "user/userList"; } @RequestMapping(value={"add"}) public   String add(){ return "user/userAdd"; } @RequestMapping(value={"edit"}) public   String edit(User user){ User user2 =   userService.findById(user.getId()); return   "user/userEdit"; } @RequestMapping(value={"delete"}) public   String delete(User user){ userService.findById(user.getId()); return   "user/userList"; } }页面userList.jsp<%@ page language="java"   import="java.util.*" contentType="text/html;   charset=utf-8"      pageEncoding="utf-8"%><%@ include   file="/static/include/taglib.jsp"%>    <!DOCTYPE html PUBLIC   "-//W3C//DTD HTML 4.01 Transitional//EN"   "//www.w3.org/TR/html4/loose.dtd"><html><head><meta   http-equiv="Content-Type" content="text/html;   charset=utf-8"><title>w3cjava</title></head><body> <a   type="button" href="${ctx}/user/add">新增</a> <table   style="border: 1px solid   black"> <thead> <tr> <td style="border: 1px   solid black">ID</td> <td style="border: 1px solid   black">登录名</td> <td   style="border: 1px solid black">工号</td> <td style="border: 1px solid   black">编辑</td> <td   style="border: 1px solid black">删除</td> </tr> </thead> <c:forEach   var="user" items="${allUsers}"   varStatus="status"> <tr> <td style="border:   1px solid black">${user.id}</td> <td style="border:   1px solid black">${user.name}</td> <td   style="border: 1px solid black">${user.age}</td> <td   style="border: 1px solid black"><a   href="${ctx}/user/edit?id=${user.id}">编辑</a></td> <td style="border: 1px solid   black"><a href="${ctx}/user/delete?id=${user.id}">删除</a></td> </tr> </c:forEach> </table></body></html>userAdd.jsp<%@   page language="java" import="java.util.*"   contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@   include file="/static/include/taglib.jsp"%>    <!DOCTYPE html PUBLIC   "-//W3C//DTD HTML 4.01 Transitional//EN"   "//www.w3.org/TR/html4/loose.dtd"><html><head><meta   http-equiv="Content-Type" content="text/html;   charset=utf-8"><title>新增</title></head><body> 新增</body></html>userEdit.jsp<%@   page language="java" import="java.util.*"   contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@   include file="/static/include/taglib.jsp"%>    <!DOCTYPE html PUBLIC   "-//W3C//DTD HTML 4.01 Transitional//EN"   "//www.w3.org/TR/html4/loose.dtd"><html><head><meta   http-equiv="Content-Type" content="text/html;   charset=utf-8"><title>新增</title></head><body> 编辑</body></html>页面中通过include引入taglib.jsp,主要作用是把常用的页面所需配置项放到这里。<%@ taglib   prefix="c" uri="//java.sun.com/jsp/jstl/core"   %><%@ taglib prefix="fmt"   uri="//java.sun.com/jsp/jstl/fmt" %><%@ taglib   prefix="fn" uri="//java.sun.com/jsp/jstl/functions"   %><c:set var="ctxStatic"   value="${pageContext.request.contextPath}/static"/><c:set   var="ctx" value="${pageContext.request.contextPath}"/>至此,SSM框架已经完成整合,完整的目录机构:下面通过Tomcat启动项目,访问//localhost:8080/user截图如下SSM整合源码:Github,这篇整合的源码在bak文件夹下    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之WebApp频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved