ssm框架整合+maven项目创建
在引入外部maven插件后就可以创建一个maven项目了,这篇文章主要介绍ssm框架的整合和如何创建一个maven项目
1、在开发工具的项目空白区单击右键,依次选择New、Other,会出现如下界面,选择Maven Project,每一步操作后出现的界面都会在下面的图中展示出来,跟着一步一步操作即可;
这样一个maven项目就创建完成了,结构如下如所示,该中结构仅支持jdk1.7及以上。这里只是有一个项目存在,里面并没有分层,我们所用的是ssm框架,需要在项目中搭建出包结构,在src/main/java这个目录下新建这样几个包:
(1) com.zhiliu.web(控制层:接受前台数据,进行页面跳转处理)
(2) com.zhiliu.service(业务层接口:处理相关的逻辑业务)
(3) com.zhiliu.service.impl(service接口的具体实现)
(4) com.zhiliu.dao(持久层:与处理数据库操作相关)
(5) com.zhiliu.bean(实体类:与数据库中的表对应)
在src/mian/resources这个目录下新建一个mapping和spring文件夹
mapping文件夹:存放dao中每个方法对应的sql,在这里配置,不用写dao的实现类daoimpl
spring文件夹:存放spring相关的配置文件
在src/test/java目录里面可以对照src/main/java这个里面建包结构,作为测试src/main/java这个目录下的各层方法的分层
完成以上步骤后,基本的项目结构就清楚了,接下来就是框架的整合了,配置各个层的配置文件,由于我们是使用maven来管理我们项目的架包的,我们首先需要添加架包的依赖,在pom.xml文件中
pom.xml
- <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.zl</groupId>
- <artifactId>study</artifactId>
- <packaging>war</packaging>
- <version>0.0.1-SNAPSHOT</version>
- <name>study Maven Webapp</name>
- <url>http://maven.apache.org</url>
- <properties>
- <!-- spring版本号 -->
- <spring.version>4.2.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>4.11</version>
- </dependency>
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.3.2</version>
- </dependency>
- <!-- 1.日志 -->
- <!-- 实现slf4j接口并整合 -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.7.7</version>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <version>1.1.3</version>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-access</artifactId>
- <version>1.1.3</version>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <version>1.1.3</version>
- </dependency>
- <!-- 2.数据库 -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.37</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>c3p0</groupId>
- <artifactId>c3p0</artifactId>
- <version>0.9.1.2</version>
- </dependency>
- <!-- DAO: MyBatis -->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis</artifactId>
- <version>3.3.0</version>
- </dependency>
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis-spring</artifactId>
- <version>1.2.3</version>
- </dependency>
- <!-- 3.Servlet web -->
- <dependency>
- <groupId>taglibs</groupId>
- <artifactId>standard</artifactId>
- <version>1.1.2</version>
- </dependency>
- <dependency>
- <groupId>jstl</groupId>
- <artifactId>jstl</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.5.4</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
- </dependency>
- <!-- 4.Spring -->
- <!-- 1)Spring核心 -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>4.2.2.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>4.2.2.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>4.2.2.RELEASE</version>
- </dependency>
- <!-- 2)Spring DAO层 -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- <version>4.2.2.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-tx</artifactId>
- <version>4.2.2.RELEASE</version>
- </dependency>
- <!-- 3)Spring web -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- <version>4.2.2.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>4.2.2.RELEASE</version>
- </dependency>
- <!-- 4)Spring test -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>4.2.2.RELEASE</version>
- </dependency>
- <!-- redis客户端:Jedis -->
- <dependency>
- <groupId>redis.clients</groupId>
- <artifactId>jedis</artifactId>
- <version>2.7.3</version>
- </dependency>
- <dependency>
- <groupId>com.dyuproject.protostuff</groupId>
- <artifactId>protostuff-core</artifactId>
- <version>1.0.8</version>
- </dependency>
- <dependency>
- <groupId>com.dyuproject.protostuff</groupId>
- <artifactId>protostuff-runtime</artifactId>
- <version>1.0.8</version>
- </dependency>
- <!-- Map工具类 -->
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2</version>
- </dependency>
- <dependency>
- <groupId>net.sf.json-lib</groupId>
- <artifactId>json-lib</artifactId>
- <version>2.4</version>
- <classifier>jdk15</classifier>
- </dependency>
- </dependencies>
- <build>
- <finalName>study</finalName>
- </build>
- </project>
至此maven项目创建完成,接下来就是整合各个配置文件了,配置文件的代码片段里都写了注释,关键部分需要根据自己的项目进行修改
先在spring
文件夹里新建spring-dao.xml
文件,因为spring的配置太多,我们可以分三层,分别是spring-dao, spring-service, spring-web,也可以把配置文件写在一个xml文件中,看个人选择
spring-dao.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"
- 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.xsd">
- <!-- 配置整合mybatis过程 -->
- <!-- 1.配置数据库相关参数properties的属性:${url} -->
- <context:property-placeholder location="classpath:jdbc.properties" />
- <!-- 2.数据库连接池 -->
- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
- <!-- 配置连接池属性 -->
- <property name="driverClass" value="${jdbc.driver}" />
- <property name="jdbcUrl" value="${jdbc.url}" />
- <property name="user" value="${jdbc.username}" />
- <property name="password" value="${jdbc.password}" />
- <!-- c3p0连接池的私有属性 -->
- <property name="maxPoolSize" value="100" />
- <property name="minPoolSize" value="30" />
- <!-- 关闭连接后不自动commit -->
- <property name="autoCommitOnClose" value="false" />
- <!-- 获取连接超时时间 -->
- <property name="checkoutTimeout" value="10000" />
- <!-- 当获取连接失败重试次数 -->
- <property name="acquireRetryAttempts" value="2" />
- </bean>
- <!-- 3.配置SqlSessionFactory对象 -->
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <!-- 注入数据库连接池 -->
- <property name="dataSource" ref="dataSource" />
- <!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
- <property name="configLocation" value="classpath:mybatis-config.xml" />
- <!-- 扫描entity包 使用别名 -->
- <property name="typeAliasesPackage" value="com.zl.bean" />
- <!-- 扫描sql配置文件:mapper需要的xml文件 -->
- <property name="mapperLocations" value="classpath:mapper/*.xml" />
- </bean>
- <!-- 4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <!-- 注入sqlSessionFactory -->
- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
- <!-- 给出需要扫描Dao接口包 -->
- <property name="basePackage" value="com.zl.dao" />
- </bean>
- </beans>
上面的数据库配置相关参数是读取配置文件,所以在resources
文件夹里新建一个jdbc.properties
文件,存放数据库连接属性
jdbc.properties
- jdbc.driver=com.mysql.jdbc.Driver
- jdbc.url=jdbc\:mysql\://localhost\:3306/ceshi?useUnicode\=true&characterEncoding\=UTF-8
- jdbc.username=
- jdbc.password=
- #min=30
- #max=100
接下来配置mybatis核心文件
mybatis-config.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
- <!-- 配置全局属性 -->
- <settings>
- <!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->
- <setting name="useGeneratedKeys" value="true" />
- <!-- 使用列别名替换列名 默认:true -->
- <setting name="useColumnLabel" value="true" />
- <!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} -->
- <setting name="mapUnderscoreToCamelCase" value="true" />
- </settings>
- </configuration>
配置完dao层后就配置service层,主要处理事务和业务
spring-service.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.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx.xsd">
- <!-- 扫描service包下所有使用注解的类型 -->
- <context:component-scan base-package="com.zl.service" />
- <!-- 配置事务管理器 -->
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <!-- 注入数据库连接池 -->
- <property name="dataSource" ref="dataSource" />
- </bean>
- <!-- 配置基于注解的声明式事务 -->
- <tx:annotation-driven transaction-manager="transactionManager" />
- </beans>
配置控制层
spring-web.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"
- 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.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
- <!-- 配置SpringMVC -->
- <!-- 1.开启SpringMVC注解模式 -->
- <!-- 简化配置:
- (1)自动注册DefaultAnootationHandlerMapping,AnotationMethodHandlerAdapter
- (2)提供一些列:数据绑定,数字和日期的format @NumberFormat, @DateTimeFormat, xml,json默认读写支持
- -->
- <mvc:annotation-driven />
- <!-- 2.静态资源默认servlet配置
- (1)加入对静态资源的处理:js,gif,png
- (2)允许使用"/"做整体映射
- -->
- <mvc:default-servlet-handler/>
- <!-- 3.配置jsp 显示ViewResolver -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
- <property name="prefix" value="/WEB-INF/jsp/" />
- <property name="suffix" value=".jsp" />
- </bean>
- <!-- 4.扫描web相关的bean -->
- <context:component-scan base-package="com.zl.web" />
- <!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1024(B)=10485760 bytes -->
- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- <property name="maxUploadSize" value="10485760" />
- </bean>
- </beans>
最后修改一下web.xml
web.xml
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
- http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
- version="3.1" metadata-complete="true" id="WebApp_1490936129958">
- <!-- 如果是用mvn命令生成的xml,需要修改servlet版本为3.1 -->
- <!-- 配置DispatcherServlet -->
- <servlet>
- <servlet-name>seckill-dispatcher</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <!-- 配置springMVC需要加载的配置文件
- spring-dao.xml,spring-service.xml,spring-web.xml
- Mybatis - > spring -> springmvc
- -->
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:spring/spring-*.xml</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>seckill-dispatcher</servlet-name>
- <!-- 默认匹配所有的请求 -->
- <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.util.IntrospectorCleanupListener</listener-class>
- </listener>
- </web-app>
一般项目处理日志用的是log4j,我这里用的是logback,具体logback怎么操作的可以去logback的官网查看
logback.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration debug="true">
- <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
- <property name="LOG_HOME" value="D:/logs/study" />
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <!-- encoders are by default assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
- <encoder>
- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
- </encoder>
- </appender>
- <!-- 按照每天生成日志文件 -->
- <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--日志文件输出的文件名-->
- <FileNamePattern>${LOG_HOME}/Study.log.%d{yyyy-MM-dd}.log</FileNamePattern>
- <!--日志文件保留天数-->
- <MaxHistory>30</MaxHistory>
- </rollingPolicy>
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- </encoder>
- <!--日志文件最大的大小-->
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <MaxFileSize>10MB</MaxFileSize>
- </triggeringPolicy>
- </appender>
- <root>
- <level value="debug"/>
- <level value="debug"/>
- <appender-ref ref="STDOUT" />
- <appender-ref ref="FILE" />
- </root>
- </configuration>
下面就是所有配置文件的结构图
一共七个配置文件,所有配置完成后这样一个ssm框架就搭建完成了。
ssm框架整合+maven项目创建的更多相关文章
- 使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
- 【转载】使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
- 搭建一个ssm框架的maven项目需要配置的文件
单独功能需要的配置文件: 1,mybatis配置文件 mybatis-config.xml2,spring配置文件 spring-context.xml ......3,we ...
- ssm框架整合---maven工具来导入jar包
ssm整合 一.导包(pom.xml文件) <?xml version="1.0" encoding="UTF-8"?> <project x ...
- 使用maven搭建ssm框架的javaweb项目
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...
- SSM框架整合模板
SSM框架整合--MAVEN依赖 spring方面(包含了springmvc): spring-webmvc:spring与mvc的整合依赖,主要包括spring的核心包和springmvc需要的包 ...
- 基于maven的ssm框架整合
基于maven的ssm框架整合 第一步:通过maven建立一个web项目. 第二步:pom文件导入jar包 (1 ...
- SpringMVC详解及SSM框架整合项目
SpringMVC ssm : mybatis + Spring + SpringMVC MVC三层架构 JavaSE:认真学习,老师带,入门快 JavaWeb:认真学习,老师带,入门快 SSM框架: ...
- IDEA下基于MAVEN的SSM框架整合
源码可以以上传github https://github.com/ingxx/ssm_first 最近把用IDEA把SSM框架整合一遍遇到了不少坑,在这里写出来 这里maven我使用的是自己下载的3. ...
随机推荐
- Linux下python开发环境的准备
升级python 安装依赖: yum install lrzsz zlib zlib-devel openssl readline-deve gcc ibffi-devel python-dev ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列7-消息事务
上篇博文中我们介绍了Azure Messaging-ServiceBus Messaging消息回执机制. Azure Messaging-ServiceBus Messaging消息回执机制 本文中 ...
- 【Java基础】 Java动态代理机制
在Java的动态代理机制中,有两个重要的类.一个是InvocationHandler,另一个是Proxy. InvocationHandler:每一个动态代理类都必须要实现InvocationHand ...
- Ubuntu下搜狗输入法突然无法输入中文
百度了很久的,后面看到这个帖子,找到解决办法.引用:http://blog.csdn.net/kiss_the_sky/article/details/62238529 删除配置文件,重启搜狗 ubu ...
- 大数据测试之hadoop系统生态
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标,也是国内最早探索大数据测试培训的机构,开发了独有的课程体系.如果对课程感兴趣,请大 ...
- linux 压缩与解压
tar -cvf test.tar test ----将test文件夹打包成test.tar. # tar -xvf test.tar ----将test.tar 进行拆解,从中抽取文件 # ...
- MySQL学习笔记(一)—数据库基础
一.数据库概述 1.数据库的组织结构 (1)数据库就是用来存放信息的仓库. (2)数据库里的数据集合都存放在数据表(table)里. (3)数据表由数据行(row)和数据 ...
- 在ASP.NET MVC4中配置Castle
---恢复内容开始--- Castle是针对.NET平台的一个非常优秀的开源项目,重点是开源的哦.它在NHibernate的基础上进一步封装,其原理基本与NHibernate相同,但它较好地解决NHi ...
- 【HDOJ 1086】 模板水过
You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/3 ...
- 对百度WebUploader的二次封装,精简前端代码之图片预览上传(两句代码搞定上传)
前言 本篇文章上一篇: 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传) 此篇是在上面的基础上扩展出来专门上传图片的控件封装. 首先我们看看效果: 正文 使用方式同 ...