ssm初步

来源:互联网 发布:周立功单片机笔试题目 编辑:程序博客网 时间:2024/06/01 07:51

1. 功能描述: 

   使用spring springMVC mybatis,实现 查询所有的部门

    辅助: maven + 注解 

2. 

注意需要导入 j2ee的包

3. 然后就是 web.xml的编写: 

   导入springMVC配置---编码方式----spring的配置---mybatis配置--- 设置不拦截的 文件

<web-app 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_3_0.xsd"version="3.0"><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><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><!-- 此处可以可以配置成*.do,对应struts的后缀习惯 --><url-pattern>/</url-pattern></servlet-mapping><!-- 编码过滤器 --><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><!-- Spring监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mybatis.xml</param-value></context-param><!-- 防止Spring内存溢出监听器 --><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class></listener><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.js</url-pattern></servlet-mapping></web-app>
然后就是 pom.xml配置:

    

   2.依次导入 需要的jar包:

   springMVC +mysql+ 日志+ 测试+spring+mybatis+jstl+fastjson+文件上传的

    

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xt</groupId><artifactId>cms</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>cms Maven Webapp</name><url>http://maven.apache.org</url><properties><!-- spring版本号 --><spring.version>4.0.2.RELEASE</spring.version><!-- mybatis版本号 --><mybatis.version>3.2.6</mybatis.version><!-- log4j日志文件管理包版本 --><slf4j.version>1.7.7</slf4j.version><log4j.version>1.2.17</log4j.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</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-oxm</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-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency>mybatis核心包<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency>mybatis/spring包<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version></dependency>导入java ee jar 包<dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency>导入Mysql数据库链接jar包<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency>导入dbcp的jar包,用来在applicationContext.xml中配置数据库<dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.2.2</version></dependency>JSTL标签类<dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>日志文件管理包log start<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency>格式化对象,方便输出日志<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.41</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency> --><!-- log end --><!-- 映入JSON --><!-- <dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency>上传组件包<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.9</version></dependency></dependencies><build><finalName>cms</finalName></build></project>

4. 然后就是 接口层+实现层 mapper

       public interface IDeptMapper {

public abstract List<Dept> findDepts();
}        

<?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="com.xt.cms.mapper.IDeptMapper">  <resultMap type="com.xt.cms.domain.Dept" id="deptResultMap">  <id column="dept_id" property="deptId"/>  <result column="dept_name" property="deptName"/>  </resultMap>  <select id="findDepts" resultMap="deptResultMap">  select dept_id,dept_name from tbdept  </select></mapper>

5.然后就是service+serviceIMPL

         public interface IDeptService {

public List<Dept> findDepts();
}


@Service("deptService")
public class DeptServiceImpl implements IDeptService{


@Autowired     自动注入
private IDeptMapper  deptDao;

public List<Dept> findDepts() {

return deptDao.findDepts();
}

@Transactional 自动提交事务(MVC里面先不扫描)
public void saveDept(Dept dept){

}


}

6.domain层


7.然后就是 springMVC的配置

<?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:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"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.1.xsd                            http://www.springframework.org/schema/context                            http://www.springframework.org/schema/context/spring-context-3.1.xsd                            http://www.springframework.org/schema/mvc                            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"><!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->    <context:component-scan base-package="com.xt.cms.controller"/><!--避免IE执行AJAX时,返回JSON出现下载文件 --><bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean><!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="messageConverters"><list><ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 --></list></property><!-- 处理日期转换,从页面到controller --><property name="webBindingInitializer"><bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"><property name="conversionService"><beanclass="org.springframework.format.support.FormattingConversionServiceFactoryBean"></bean></property></bean></property></bean><!-- 定义跳转的文件的前后缀 ,视图模式配置 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --><property name="prefix" value="/WEB-INF/view/" /><property name="suffix" value=".jsp" /></bean></beans>  
8.
配置 spring—mybatis

     先把 数据源的 文件导入

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/s2db
username=root
password=123456
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000

<?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:p="http://www.springframework.org/schema/p"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.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.0.xsd              http://www.springframework.org/schema/tx             http://www.springframework.org/schema/tx/spring-tx-3.0.xsd                             http://www.springframework.org/schema/mvc                            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"><!-- 开启事物注解 --><tx:annotation-driven /><context:component-scan base-package="com.xt.cms.mapper"/> <!--注,此处自动扫描注解的时候,不去扫描Service -->    <context:component-scan base-package="com.xt.cms.service"/>     <context:component-scan base-package="com.xt.cms.domain"/> <!--注,此处自动扫描注解的时候,不去扫描Service -->    <!-- 读取db.properties --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="classpath:db.properties" /></bean><!-- 配置数据源 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /><!-- 初始化连接大小 --><property name="initialSize" value="${initialSize}"></property><!-- 连接池最大数量 --><property name="maxActive" value="${maxActive}"></property><!-- 连接池最大空闲 --><property name="maxIdle" value="${maxIdle}"></property><!-- 连接池最小空闲 --><property name="minIdle" value="${minIdle}"></property><!-- 获取连接最大等待时间 --><property name="maxWait" value="${maxWait}"></property></bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 自动扫描mapping.xml文件 --><property name="mapperLocations" value="classpath:com/xt/cms/mapper/*.xml"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.xt.cms.mapper" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!-- 事务管理 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean></beans>
9. controller的编写 自动识别注入+path值引入+ ajax+取别名

package com.xt.cms.controller;@Controller@RequestMapping("/dept")public class DeptController {@Autowiredprivate IDeptService  deptService;@RequestMapping("/list")public String  findDept(HttpServletRequest request){List<Dept>  ds = deptService.findDepts();request.setAttribute("ds", ds);return "deptlist";}@RequestMapping("/listjson/{id1}_{id2}_{id3}")public  @ResponseBody List<Dept> findDept(@PathVariable int id1,@PathVariable int id2,@PathVariable int id3){System.out.println(id1+"\t"+id2+"\t"+id3);List<Dept>  ds = deptService.findDepts();return ds;}}

@RequestMapping("/listjson/{id1}_{id2}_{id3}")
         对应的 jsp页面 就是 url:'dept/listjson/1_2_3',

  @ResponseBody List<Dept>  返回的 success: function(data)


10. 前端的编写

<script type="text/javascript" src="js/jquery-3.1.0.min.js"></script><script type="text/javascript" src="js/json2.js"></script><script type="text/javascript">function dosome() {$.ajax({url:'dept/listjson/1_2_3',type:'post',datatype:'json',success:function(dt){alert(JSON.stringify(dt));},error:function(dt){alert(JSON.stringify(dt));}});}</script></head><body><h2><a href="dept/list">跳跳跳</a> <input type="button" onclick="dosome()"value="查啊" /></h2></body></html>

11. 附上 日志记录

log4j.rootLogger=debug,Console,File  #\u5B9A\u4E49\u65E5\u5FD7\u8F93\u51FA\u76EE\u7684\u5730\u4E3A\u63A7\u5236\u53F0  log4j.appender.Console=org.apache.log4j.ConsoleAppender  log4j.appender.Console.Target=System.out  #\u53EF\u4EE5\u7075\u6D3B\u5730\u6307\u5B9A\u65E5\u5FD7\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0B\u9762\u4E00\u884C\u662F\u6307\u5B9A\u5177\u4F53\u7684\u683C\u5F0F  log4j.appender.Console.layout = org.apache.log4j.PatternLayout  log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n    #\u6587\u4EF6\u5927\u5C0F\u5230\u8FBE\u6307\u5B9A\u5C3A\u5BF8\u7684\u65F6\u5019\u4EA7\u751F\u4E00\u4E2A\u65B0\u7684\u6587\u4EF6  log4j.appender.File = org.apache.log4j.RollingFileAppender  #\u6307\u5B9A\u8F93\u51FA\u76EE\u5F55  log4j.appender.File.File = logs/ssm.log  #\u5B9A\u4E49\u6587\u4EF6\u6700\u5927\u5927\u5C0F  log4j.appender.File.MaxFileSize = 10MB  # \u8F93\u51FA\u6240\u4EE5\u65E5\u5FD7\uFF0C\u5982\u679C\u6362\u6210DEBUG\u8868\u793A\u8F93\u51FADEBUG\u4EE5\u4E0A\u7EA7\u522B\u65E5\u5FD7  log4j.appender.File.Threshold = ALL  log4j.appender.File.layout = org.apache.log4j.PatternLayout  log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n 


0 0
原创粉丝点击