关闭

ssm框架整合

标签: java框架
327人阅读 评论(0) 收藏 举报
分类:
ssm框架搭建




1、配置POM.xml文件,配置项目所需jar(下载jar包,寻找依赖,热部署)


pom从本地拿文件:(遇到中央仓库授权问题)
<dependency> 
    <groupId>cn.outofmemory</groupId> 
    <artifactId>my-tools</artifactId> 
    <version>2.5.0</version> 
    <type>jar</type> 
    <scope>system</scope> 
    <systemPath>${basedir}/lib/mylib1.jar</systemPath> 
</dependency>




2、配置web.xml


头部换成2.4版本:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:javaee="http://java.sun.com/xml/ns/javaee"
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	id="WebApp_ID" version="2.4">




创建配置文件application-context.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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">




    <!-- 把config文件中所有的配置文件都自动加载进来 -->
<import resource="config/*.xml" />
</beans>




web.xml中配置创建好的文件:
	<context-param>
	<param-name>con</param-name>
	<param-value>classpath:application-context.xml</param-value>
	</context-param>


这是web默认加载配置文件






web.xml配置spring监听器:
	<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>




在src/main/resources下建立config文件夹用于存放配置文件


config目录下配置anotation.xml用于配置注解(扫描,自动装配)


src/main/java中创建基本的项目目录结构
src/main/java/core核心包
src/main/java/utils公用包




4、anotation.xml中只配置spring扫描上述包中的service包:
     <!-- 配置spring扫描 @service -->
     <context:component-scan base-package="cn.zy">
     <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
     </context:component-scan>


     
     <!-- 自动装配 -->
     <!-- 自动配置依赖注入,不需要再set进去 -->
     <context:annotation-config/>






5、配置c3p0连接池
(可以连接多个数据库,不止一个;连接断开会自动连接)


事物也要单独配置由容器进行管理


创建资源文件properties存放jdbc.properties
资源文件中配置数据库基本信息:
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/shop?characterEncoding=UTF-8
user=root
password=123456




新建jdbc.xml在config目录下配置c3p0连接池:
    <!-- 配置c3p0 4个值从properties资源文件中取-->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${driverClass}" />
		<property name="jdbcUrl" value="${jdbcUrl}"></property>
		<property name="user" value="${user}" />
		<property name="password" value="${password}" />
	</bean>








6、新建并配置property.xml文件,读取jdbc.properties:
PropertyPlaceholderConfigurer  (spring中配置资源文件的读取)


spring配置资源文件的读取:
     <!-- 读取JDBC配置 -->
	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	     <property name="locations">
	          <list>
	             <!-- jdbc的配置 -->
	             <value>classpath:properties/jdbc.properties</value>
	             <!-- memcached的配置 -->
	             <!-- 再用value属性对接下来的资源文件进行配置 -->
	          </list>
	     </property>
	</bean>








7、创建并配置mybatis.xml文件:


   <!-- mybatis org.mybatis.spring.SqlSessionFactoryBean配置,数据源的配置 -->


     <!-- mybatis org.mybatis.spring.SqlSessionFactoryBean配置 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	     <!-- 配置数据源 -->
	     <property name="dataSource" ref="dataSource"></property>
	     <!-- 配置导入映射文件的目录 -->
	     <property name="mapperLocations" value="classpath:cn/zy/core/dao/*.xml"></property>
	     <!-- 设置包的别名 -->
	     <property name="typeAliasesPackage" value="cn.zy.core.bean"></property>
	</bean>
	
	<!-- 配置mybatis对dao包的扫描 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	  <property name="basePackage" value="cn.zy.core.dao"></property>
	</bean>




SqlsessionFactoryBean(产生session,可以进行增删改查)


    配置时id不能乱写!因为是自动装配




在cn.zy.core.bean下创建一个UserInfo实体类,用于mybatis做映射


src/main/resource下创建core/dao的mybatis相对于实体的映射配置文件
UserInfoDAO.xml
对sql语句进行注册


设置包的别名:mybatis.xml文件中:<property name="typeAliasesPackage" value="cn.zy.core.bean"></property>
设置完别名之后UserInfoDAO.xml中就可以不设置包名,直接用对象名注册sql


配置mybatis对dao包的扫描(类似于spring配置对service包的扫描)




8、事务管理:transation.xml  以注解的方式
   spring 声明式事务
     使用mybatis或者hibernate时,不需要手动编写进行提交事务的代码
   DataSourceTransactionManager


     <!-- spring 事务 -->
     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
 <property name="dataSource" ref="dataSource"></property>
     </bean>



 <!-- 开启注解事务 -->
     <tx:annotation-driven transaction-manager="transactionManager"/>






---------------------------------------------------------------




测试环境是否搭建成功:


UserInfoDAO.xml中namespace为dao下的UserInfoDAO接口目录


UserInfoDAO接口中的方法名要和UserInfoDAO.xml中的id要对应上


编写好注册的sql ,insert


mybatis中#{}代表预编译,相当于?


service中编写IUserInfoService编写添加方法


service目录下的impl下创建IUserInfoService的实现类


创建实现类IUerInfoServiceImpl过程中add interface中,加入IUserInfoService这个接口


在实现类IUerInfoServiceImpl添加注解@Service
定义private UserInfoDAO userdao;并加注解@Autowired


在测试类中UserTest进行测试
注解的方式引入测试环境和配置文件
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:application-context.xml")


run as --> Junit Test --> 成功,数据库中成功添加数据


如何要让事务发挥作用:


在接口方法中添加异常抛出,
public void addUser(UserInfo user) throws Exception;
实现类中也添加异常抛出
测试类添加try catch
 
run as --> Junit Test --> 捕捉到了异常,但是数据还是插入到了数据库,所以这里要进行事务的控制!


运行时异常 throw new RuntimeException("运行时异常");
也能插入到数据库


应该设置 : 事务回滚,报错时数据库数据添加不成功


操作:因为配置文件中开启了注解事务,所以在接口的上方添加事务管理的注解即可


银行转账的时候:要么就一起成功,要么就一起回滚.



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19447次
    • 积分:462
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    最新评论