myeclipse中ssm的搭建

项目框架

首先配置spring的application.xml文件,配置内容如下:

 1 <?xml version="1.0" encoding="UTF-8"?>  
 2 <beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 3        xmlns:tx="http://www.springframework.org/schema/tx"  xsi:schemaLocation="http://www.springframework.org/schema/beans 
 4        http://www.springframework.org/schema/beans/spring-beans.xsd 
 5        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">  
 6      
 7     <!-- 引入配置文件 -->  
 8     <bean id="propertyConfigurer"  
 9         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
10         <property name="location" value="classpath:jdbc.properties" />  
11     </bean>  
12   <!-- 配置数据源:此处要注意使用数据库连接池引入的类一定要属于导入的jar包,另外每个连接池的参数也有可能不一样 -->
13     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"  
14         destroy-method="close">  
15         <property name="driverClassName" value="${datasource.driverClassName}" />  
16         <property name="url" value="${datasource.url}" />  
17         <property name="username" value="${datasource.username}" />  
18         <property name="password" value="${datasource.password}" />  
19         <!-- 初始化连接大小 -->  
20         <!--  <property name="initialSize" value="${datasource.initialSize}"></property>  
21         --><!-- 连接池最大数量   -->
22         <property name="maxActive" value="${datasource.maxActive}"></property>  
23         <!-- 连接池最大空闲   -->
24         <property name="maxIdle" value="${datasource.maxIdle}"></property>  
25         <!-- 连接池最小空闲   -->
26         <!-- <property name="minIdle"><value>1</value></property>  
27         获取连接最大等待时间  
28         <property name="maxWait" value="${datasource.maxWait}"></property>  --> 
29     </bean> 
30   
31     <!-- spring和MyBatis整合 -->  
32     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
33         <property name="dataSource" ref="dataSource" />  
34         <!--mybatis的配置文件 ,在此文件中,可以为每个类配置别名,这样在mapper.xml文件中,写resultType时就不需要写类的全路径了-->  
35         <!-- <property name="configLocation" value="classpath:mybatis-config.xml" /> -->
36         <!-- 自动扫描mapping.xml文件 -->  
37         <property name="mapperLocations" value="classpath:com/cn/mapping/*.xml"></property>  
38     </bean>  
39   
40     <!-- DAO接口所在包名,Spring会自动查找其下的类 -->  
41     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
42         <property name="basePackage" value="com.cn.dao" />  
43         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  
44     </bean>  
45   
46     <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->  
47     <bean id="transactionManager"  
48         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
49         <property name="dataSource" ref="dataSource" />  
50     </bean>  
51   <!--开启事务注解扫描-->  
52     <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>  
53 </beans>

接下来配置jdbc.properties文件

 1 ###############################        MySQL\u6570\u636e\u5e93\u914d\u7f6e\u4fe1\u606f        ###############################
 2 ##############################################################################################
 3 datasource.driverClassName=com.mysql.jdbc.Driver
 4 datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true
 5 datasource.username=root
 6 datasource.password=123
 7 #datasource.datasource=java:comp/env/jdbc/ceiba
 8 #hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
 9 ##############################################################################################
10 ################################        \u4ee5\u4e0b\u662f\u516c\u5171\u914d\u7f6e\u4fe1\u606f        ################################
11 ##############################################################################################
12 #最大连接数
13 datasource.maxActive=100
14 #最大空闲数
15 datasource.maxIdle=30
16 #最大等待时间
17 datasource.maxWait=1200
18 #初始加载数
19 datasource.initialSize=10;
20 #datasource.defaultAutoCommit=true
21 #datasource.defaultAutoCommit=false

然后配置spring-mvc的配置文件spring-mvc.xml

 1 <?xml version="1.0" encoding="UTF-8"?>  
 2 <beans xmlns="http://www.springframework.org/schema/beans"  
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
 4     xmlns:context="http://www.springframework.org/schema/context"  
 5     xmlns:mvc="http://www.springframework.org/schema/mvc"  
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans    
 7                         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
 8                         http://www.springframework.org/schema/context    
 9                         http://www.springframework.org/schema/context/spring-context-3.1.xsd    
10                         http://www.springframework.org/schema/mvc    
11                         http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
12                         
13     <!-- 告知Spring,我们启用注解驱动 -->  
14     <mvc:annotation-driven/>  
15     <!-- org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,  
16         它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,  
17         就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。 -->  
18     <mvc:default-servlet-handler/>  
19     <!-- 自动扫描该包 -->  
20     <context:component-scan base-package="com.cn" />   
21     <!-- 对静态资源文件的访问,因为Spring MVC会拦截所有请求,导致jsp页面中对js和CSS的引用也被拦截,配置后可以把对资源的请求交给项目的  
22     默认拦截器而不是Spring MVC-->  
23     <mvc:resources mapping="/static/**" location="/WEB-INF/static/" />    
24     <!-- 定义跳转的文件的前后缀 ,视图模式配置-->  
25     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
26         <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->  
27         <property name="prefix" value="/WEB-INF/jsp/" />  
28         <property name="suffix" value=".jsp" />  
29     </bean>     
30     <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->  
31     <bean id="multipartResolver"    
32         class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    
33         <!-- 默认编码 -->  
34         <property name="defaultEncoding" value="utf-8" />    
35         <!-- 文件大小最大值 -->  
36         <property name="maxUploadSize" value="10485760000" />    
37         <!-- 内存中的最大值 -->  
38         <property name="maxInMemorySize" value="40960" />    
39     </bean>   
40   
41 </beans>

最后配置web.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>  
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 3     xmlns="http://java.sun.com/xml/ns/javaee"  
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
 5     version="3.0">
 6     
 7     <!-- Spring监听器 -->  
 8     <listener>  
 9         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
10     </listener>  
11      <!-- 防止Spring内存溢出监听器 -->  
12     <listener>  
13         <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  
14     </listener>
15     
16     <!-- Spring容器加载所有的配置文件的路径 -->  
17     <context-param>  
18         <param-name>contextConfigLocation</param-name>  
19         <param-value>classpath*:applicationContext.xml</param-value>  
20     </context-param> 
21     <!-- 配置SpringMVC核心控制器,将所有的请求(除了刚刚Spring MVC中的静态资源请求)都交给Spring MVC -->  
22     <servlet>  
23         <servlet-name>springMvc</servlet-name>  
24         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
25         <init-param>  
26             <param-name>contextConfigLocation</param-name>  
27             <param-value>classpath*:spring-mvc.xml</param-value>  
28         </init-param>  
29         <!--用来标记是否在项目启动时就加在此Servlet,0或正数表示容器在应用启动时就加载这个Servlet,  
30         当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载.正数值越小启动优先值越高  -->  
31         <load-on-startup>1</load-on-startup>  
32     </servlet>
33     
34     <!--为DispatcherServlet建立映射-->  
35     <servlet-mapping>  
36         <servlet-name>springMvc</servlet-name>  
37         <!-- 拦截所有请求,千万注意是(/)而不是(/*) --> 
38         <!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->
39         <url-pattern>/</url-pattern>  
40     </servlet-mapping>
41       
42     <!-- 编码过滤器 -->  
43     <filter>  
44         <filter-name>encodingFilter</filter-name>  
45         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
46         <async-supported>true</async-supported>  
47         <init-param>  
48             <param-name>encoding</param-name>  
49             <param-value>UTF-8</param-value>  
50         </init-param>
51         <init-param>  
52             <param-name>forceEncoding</param-name>  
53             <param-value>true</param-value>  
54         </init-param>   
55     </filter>  
56     <filter-mapping>  
57         <filter-name>encodingFilter</filter-name>  
58         <url-pattern>/*</url-pattern>  
59     </filter-mapping>  
60     
61     <welcome-file-list>  
62         <welcome-file>/index.jsp</welcome-file>  
63     </welcome-file-list>  
64   
65 </web-app>  

忘了,还有日志参数的配置

 1 #设置日志的级别
 2 log4j.rootLogger=INFO,Console,File  
 3 #输出信息到控制台
 4 log4j.appender.Console=org.apache.log4j.ConsoleAppender  
 5 log4j.appender.Console.Target=System.out  
 6 #\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  
 7 log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
 8 log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  
 9   
10 #日志类型配置
11 log4j.appender.File = org.apache.log4j.RollingFileAppender  
12 log4j.appender.File.File = logs/ssm.log  
13 log4j.appender.File.MaxFileSize = 10MB    
14 log4j.appender.File.Threshold = ALL  
15 log4j.appender.File.layout = org.apache.log4j.PatternLayout  
16 log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n  
17 
18 #### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
19 #log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
20 #log4j.appender.D.File = E://logs/log.log
21 #log4j.appender.D.Append = true
22 #log4j.appender.D.Threshold = DEBUG 
23 #log4j.appender.D.layout = org.apache.log4j.PatternLayout
24 #log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
25 #
26 #### 输出ERROR 级别以上的日志到=E://logs/error.log ###
27 #log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
28 #log4j.appender.E.File =E://logs/error.log 
29 #log4j.appender.E.Append = true
30 #log4j.appender.E.Threshold = ERROR 
31 #log4j.appender.E.layout = org.apache.log4j.PatternLayout
32 #log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

下面开始写java类

1.实体类(IFiled接口是我用来实现快速填充创建人,创建时间,修改人,修改时间,版本号,以及单据状态的接口,这个接口不是必须实现的)

  1 package com.cn.entity;
  2 
  3 import com.cn.util.IFiled;
  4 
  5 import java.util.Date;
  6 
  7 /**
  8  * @Author zhanghl
  9  * @Date 2018/4/26 13:08
 10  * @Description 请输入一句话用来描述
 11  **/
 12 public class PrintField  implements IFiled {
 13     
 14     private Integer id;
 15 
 16     private String fieldName;
 17 
 18     private Integer sortNumber;
 19 
 20     private double size;
 21 
 22     // 1有效,0无效
 23     private Integer isValid;
 24 
 25     // 创建人
 26     private String creator;
 27 
 28     // 创建时间
 29     private Date createTime;
 30 
 31     // 版本
 32     private String version;
 33 
 34     // 修改人
 35     private String modifier;
 36 
 37     // 修改时间
 38     private Date modifyTime;
 39     public Integer getId() {
 40         return id;
 41     }
 42 
 43     public void setId(Integer id) {
 44         this.id = id;
 45     }
 46 
 47     public String getFieldName() {
 48         return fieldName;
 49     }
 50 
 51     public void setFieldName(String fieldName) {
 52         this.fieldName = fieldName;
 53     }
 54 
 55     public Integer getSortNumber() {
 56         return sortNumber;
 57     }
 58 
 59     public void setSortNumber(Integer sortNumber) {
 60         this.sortNumber = sortNumber;
 61     }
 62 
 63     public double getSize() {
 64         return size;
 65     }
 66 
 67     public void setSize(double size) {
 68         this.size = size;
 69     }
 70 
 71     public Integer getIsValid() {
 72         return isValid;
 73     }
 74 
 75     public void setIsValid(Integer isValid) {
 76         this.isValid = isValid;
 77     }
 78 
 79     public String getCreator() {
 80         return creator;
 81     }
 82 
 83     public void setCreator(String creator) {
 84         this.creator = creator;
 85     }
 86 
 87     public Date getCreateTime() {
 88         return createTime;
 89     }
 90 
 91     public void setCreateTime(Date createTime) {
 92         this.createTime = createTime;
 93     }
 94 
 95     public String getVersion() {
 96         return version;
 97     }
 98 
 99     public void setVersion(String version) {
100         this.version = version;
101     }
102 
103     public String getModifier() {
104         return modifier;
105     }
106 
107     public void setModifier(String modifier) {
108         this.modifier = modifier;
109     }
110 
111     public Date getModifyTime() {
112         return modifyTime;
113     }
114 
115     public void setModifyTime(Date modifyTime) {
116         this.modifyTime = modifyTime;
117     }
118     
119     
120     
121 }

2.控制层

 1 package com.cn.controller;
 2 
 3 import java.util.List;
 4 
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 import org.springframework.web.servlet.ModelAndView;
 9 
10 import com.cn.entity.PrintField;
11 import com.cn.service.IPrintFieldService;
12 
13 @Controller
14 @RequestMapping(value = "/printfield")
15 public class PrintFieldController {
16 
17     //@Resource(name = "printFieldService“)
18     @Autowired
19     IPrintFieldService printFieldService;
20     
21     
22     @RequestMapping(value = "/list")  
23     public ModelAndView list()  
24     {  
25         ModelAndView mv=new ModelAndView();  
26         List<PrintField>  userList = printFieldService.getUser();  
27         mv.addObject("userList",userList);  
28         mv.setViewName("/show");  
29         return mv;  
30     }  
31     
32     
33 }

3.业务逻辑层

 1 package com.cn.service;
 2 
 3 import java.util.List;
 4 
 5 import com.cn.entity.PrintField;
 6 
 7 public interface IPrintFieldService {
 8 
 9     public List<PrintField> getUser(); 
10 }
 1 package com.cn.service.impl;
 2 
 3 import java.util.List;
 4 
 5 import javax.annotation.Resource;
 6 
 7 import org.springframework.stereotype.Service;
 8 
 9 import com.cn.dao.IPrintFieldDao;
10 import com.cn.entity.PrintField;
11 import com.cn.service.IPrintFieldService;
12 @Service("printFieldService") 
13 public class PrintFieldServiceImpl implements IPrintFieldService {
14     @Resource(name = "printfielDao")  
15     private IPrintFieldDao printFieldDao;  
16       
17     @Override
18     public List<PrintField> getUser() {
19         return printFieldDao.selectAllUser();  
20     }
21 
22 }

4.dao层

 1 package com.cn.dao;
 2 
 3 import java.util.List;
 4 
 5 import org.springframework.stereotype.Repository;
 6 
 7 import com.cn.entity.PrintField;
 8 
 9 @Repository("printfielDao") 
10 public interface IPrintFieldDao {
11       
12     List<PrintField> selectAllUser();  
13 }

5.PrintFieldMapper.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>  
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >  
 3 <!--namespace就是与此文件对应的Dao接口的全路径-->  
 4 <mapper namespace="com.cn.dao.IPrintFieldDao" >  
 5   <resultMap id="BaseResultMap" type="com.cn.entity.PrintField" >
 6       <!-- jdbcType的值可以通过对照表进行查询 -->  
 7     <id column="ID" property="id" jdbcType="INTEGER" />  
 8     <result column="field_name" property="fieldName" jdbcType="VARCHAR" />  
 9     <result column="sort_number" property="sortNumber" jdbcType="INTEGER" />  
10     <result column="size" property="size" jdbcType="DECIMAL" />  
11     <result column="is_valid" property="isValid" jdbcType="INTEGER" />
12     <result column="creator" property="creator" jdbcType="VARCHAR" />  
13     <result column="create_time" property="createTime" jdbcType="DATE" />
14     <result column="modifier" property="modifier" jdbcType="VARCHAR" />  
15     <result column="modify_time" property="modifyTime" jdbcType="DATE" />
16     <result column="version" property="version" jdbcType="VARCHAR" />  
17     
18   </resultMap>  
19 <!--自己配置的查询表所有数据的sql-->  
20 <!--如下type的PrintField就是mybatis-config.xml中配置的PrintField-->  
21 <!-- <select id="selectAllUser"  resultType="PrintField">  -->
22 <!-- resultMap是上面resultMap的id -->
23   <select id="selectAllUser"  resultMap="BaseResultMap">  
24     select * FROM print_field;  
25   </select>  
26 </mapper>

 源码:https://github.com/zhanghouli/ssm.git

猜你喜欢

转载自www.cnblogs.com/zhlblogs/p/8994863.html
今日推荐