1. 外部架包依赖引入
1.1 spring框架依赖包引入
spring-context
spring-beans
spring-jdbc
spring aspects
spring-webmvc
1.2 spring-mybatis依赖包引入
mybatis
mybatis-spring
1.3 数据库依赖包引入
mysql-connector-java
druid
1.4 redis依赖包引入
jedis
1.5 web相关依赖包引入
jstl
servlet-api
jsp-api
Jackson-databind
1.6 其他日志和公共包依赖引入
slf4j-log4j12
junit
commons-langs
commons-io
2. 各项目间依赖关系以及架包引入
ssm-parent实现了所有外部依赖包引入
(1)ssm-commons 实现公共的组件,工具类等
(2)ssm-manager 实际业务管理工程,聚合工程,
其包含工程依赖(1)
(3)ssm-manager-pojo
(4)ssm-manager-mapper 依赖(3)
(5)ssm-manager-service 依赖(3,4)
(6)ssm-manager-controller 依赖(3,5)
3. Spring简单介绍
Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,简单来说,Spring是一个
分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。
总结几点:
1) spring是轻量级的,而且是开放源码的。
2) spring有控制反转和依赖注入的特性,将类之间的主动关联转换为被动关联,实现的相互间的解耦,
通过配置文件,简化了开发;
3) aop面向切面编程,将系统核心业务与服务分离,实现了代码的解耦,通过切面实现全局调用,
如日志,事务等;
4) 与其他框架能很好的集成,如mybatis,struts2,hibernate,redis等。
4. mybatis简单介绍
MyBatis是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis避免了几乎所有的
JDBC代码和手动设置参数以及获取结果集。MyBatis可以对配置和原生Map使用简单的 XML或注解,
将接口和Java的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
mybatis相对hibernate优势
1) mybatis是轻量级的,学习成本较低,易上手;
2) mybatis是半自动化的,相关的sql需要手动实现;
5. Spring,mybatis,mysql等配置实现
5.1 ssm-manager-controller项目中的所有配置文件
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/ussm?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
applicationContext-mapper.xml
<!-- 配置文件 -->
<context:property-placeholder location="classpath:config/*.properties"/>
<!-- 数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="driverClassName" value="${jdbc.driver}" />
<property name="maxActive" value="10" />
<property name="minIdle" value="5" />
<property name="logAbandoned" value="true" />
</bean>
<!-- 配置sqlsessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 配置扫描包,加载mapper代理对象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.ssm.manager.mapper"></property>
</bean>
applicationContext-service.xml
<!-- 自动扫描service包 -->
<context:component-scan base-package="com.ssm.manager.service">
</context:component-scan>
<import resource="applicationContext-mapper.xml"/>
<import resource="applicationContext-trans.xml"/>
applicationContext-springmvc.xml
<!-- 通过Web.xml的DispatcherServlet加载 -->
<!-- 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter
两个bean,是spring MVC为@Controllers分发请求所必须的 -->
<!-- 启动spring事务注解, $该启用必须在springMVC中,而不能在applicationContext.xml中配置,
不然事务注解无效$
也就是说只有这一行才能真正开启事务,单独地在类或方法上注解@Transaction只是作了事务
标记而以-->
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- 启动spring事务注解, $该启用必须在springMVC中,而不能在applicationContext.xml中配置,
不然事务注解无效$ 也就是说只有这一行才能真正开启事务,单独地在类或方法上注解@Transaction
只是作了事务标记而以-->
<tx:annotation-driven transaction-manager="transactionManager" />
<bean class="org.springframework.web.servlet.mvc.annotation.
DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<!-- 多个拦截器,顺序执行 -->
<!-- <ref bean="SpringMVCInterceptor" /> -->
<!-- <ref bean="OpenSessionInViewInterceptor" /> -->
</list>
</property>
</bean>
<!-- 5.对模型视图名称的解析,即给模型视图名称添加前后缀 -->
<bean class="org.springframework.web.servlet.view
.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/" />
<!-- 让ModelAndView("jsp/teacher/listTeachers.jsp") 从/WEB-INF/目录下开始 -->
<property name="suffix" value="" />
<!-- <property name="suffix" value=".jsp" /> -->
<!-- Spring内部资源解析类 -->
<property name="viewClass"
value="org.springframework.web.servlet.view.InternalResourceView" />
</bean>
applicationContext-trans.xml
<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 传播行为 -->
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
<tx:method name="select*" propagation="SUPPORTS" read-only="true" />
<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
</tx:attributes>
</tx:advice>
<!-- 切面 -->
<aop:config>
<aop:advisor advice-ref="txAdvice"
pointcut="execution(* com.ssm.manager.service.*.*(..))" />
</aop:config>
web.xml
<!-- spring配置文件整合配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-service.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 字符编码过滤器 -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- springmvc配置 -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext-springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.action</url-pattern>
<url-pattern>*.js</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>/css/**"</url-pattern>
<url-pattern>/images/**</url-pattern>
<url-pattern>/js/**</url-pattern>
</servlet-mapping>
UserController.java
pom.xml
<packaging>war</packaging>
<dependency>
<groupId>com.ssm.manager</groupId>
<artifactId>ssm-manager-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
</dependency>
5.2 ssm-manager-mapper项目中所有配置文件
pom.xml
<dependency>
<groupId>com.ssm.manager</groupId>
<artifactId>ssm-manager-pojo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
UserMapper.xml
<mapper namespace="com.ssm.manager.mapper.UserMapper">
<resultMap id="UserMapper" type="com.ssm.manager.pojo.User">
<id property="id" column="id" />
<result property="userName" column="userName" />
<result property="password" column="password" />
</resultMap>
<select id="getUsers" resultMap="UserMapper">
select id,userName,password from t_user
</select>
<insert id="xxxUsers" parameterType="int">
INSERT INTO t_user (id,userName,password) VALUES (3,'lisi','123456');
</insert>
</mapper>
5.4 ssm-manager-service所有文件的配置信息
pom.xml
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
5.6 ssm-parent所有文件的配置信息
pom.xml
<packaging>pom</packaging>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
<junit.version>4.12</junit.version>
<spring.version>4.1.3.RELEASE</spring.version>
<mybatis.version>3.2.8</mybatis.version>
<mybatis.spring.version>1.2.2</mybatis.spring.version>
<mysql.version>5.1.32</mysql.version>
<slf4j.version>1.6.4</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<jackson.version>2.4.2</jackson.version>
<druid.version>1.0.9</druid.version>
<jstl.version>1.2</jstl.version>
<servlet-api.version>2.5</servlet-api.version>
<jsp-api.version>2.0</jsp-api.version>
<commons-lang3.version>3.3.2</commons-lang3.version>
<commons-io.version>1.3.2</commons-io.version>
<jedis.version>2.7.2</jedis.version>
<!-- Jackson Json处理工具包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- 日志处理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</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-webmvc</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-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- JSP相关 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-api.version}</version>
<scope>provided</scope>
</dependency>
<!-- Redis客户端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>${jedis.version}</version>
</dependency>
SpringMVC+Spring+mybatis
猜你喜欢
转载自blog.csdn.net/Leon_Jinhai_Sun/article/details/87774189
今日推荐
周排行