SSM 框架 + maven 整合 搭建

本文详细介绍了如何将Struts2、Spring和MyBatis三大框架进行整合,包括Maven依赖配置、Struts2与Spring的集成、MyBatis与Spring的整合步骤,以及具体的配置文件示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. Maven 架包 依赖
    <!-- struct -->
    		<dependency>
    			<groupId>org.apache.struts</groupId>
    			<artifactId>struts2-core</artifactId>
    			<version>2.5.1</version>
    		</dependency>
    		<!-- Mybatis -->
    		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    		<dependency>
    			<groupId>org.mybatis</groupId>
    			<artifactId>mybatis</artifactId>
    			<version>3.2.1</version>
    		</dependency>
    <!--  spring 依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.2.18.RELEASE</version>
        </dependency>
    	<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
    	<dependency>
    	    <groupId>org.springframework</groupId>
    	    <artifactId>spring-test</artifactId>
    	    <version>3.2.18.RELEASE</version>
    	    <scope>test</scope>
    	</dependency>
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
    	<dependency>
    	    <groupId>org.springframework</groupId>
    	    <artifactId>spring-core</artifactId>
    	    <version>3.2.18.RELEASE</version>
    	</dependency>
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
    	<dependency>
    	    <groupId>org.springframework</groupId>
    	    <artifactId>spring-web</artifactId>
    	    <version>3.2.18.RELEASE</version>
    	</dependency>
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
    	<dependency>
    	    <groupId>org.springframework</groupId>
    	    <artifactId>spring-aop</artifactId>
    	    <version>3.2.18.RELEASE</version>
    	</dependency>
    	
    <!-- https://mvnrepository.com/artifact/aspectj/aspectjweaver -->
    <dependency>
        <groupId>aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.5.4</version>
    </dependency>
    
    	
    		<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
    	<dependency>
    	    <groupId>org.springframework</groupId>
    	    <artifactId>spring-tx</artifactId>
    	    <version>3.2.18.RELEASE</version>
    	</dependency>
    	<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    	<dependency>
    	    <groupId>org.springframework</groupId>
    	    <artifactId>spring-jdbc</artifactId>
    	    <version>3.2.18.RELEASE</version>
    	</dependency>
    	<!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>3.2.18.RELEASE</version>
    </dependency>
    
        <!-- spring strust 插件 -->
        <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-spring-plugin -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.3.33</version>
    </dependency>
    <!--  spring mybatis 整合依赖 -->
      <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>1.3.1</version>
        </dependency>
    
     <!-- 连接池 -->
        <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
    
        <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-pool/commons-pool -->
    <dependency>
        <groupId>commons-pool</groupId>
        <artifactId>commons-pool</artifactId>
        <version>1.6</version>
    </dependency>

  2. struts跟spring整合
      
    		<!-- strust2 的 配置 -->
    	<filter>
    		<filter-name>s2</filter-name>
    		<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    	</filter>
    	<filter-mapping>
    		<filter-name>s2</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
    		<!-- spring 介入  struts -->
    	
    		<!-- 工厂的创建 -->
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    	<!-- 指定工厂的配置文件 -->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:/com/yufan/util/applicationContext.xml</param-value>
    	</context-param>
    web.xml 中需要添加的代码
  3. mybatis跟spring整合

                <!--要和 Spring 一起使用 MyBatis,你需要在 Spring 应用上下文中定义至少两样东西:
    一个 SqlSessionFactory 和至少一个数据映射器类。  -->

    注: 原本mybatis-configxml 中的配置,除了设置别名的属性,其他的配置信息全部移动到了spring的配置文件中

<configuration>
		<typeAliases>
	<!-- 别名		<typeAlias type="com.yufan.entity.User" alias="User"/> -->
			<typeAlias type="com.yufan.entity.User" alias="User"/>
		</typeAliases>
</configuration>

下面具体介绍spring的配置文件applicationContext.xml 的内容

1.

	<!--  识别jdbc.properties 文件  -->
	<context:property-placeholder location="classpath:/com/yufan/util/jdbc.properties"
	/>

2.

	<!-- 连接池 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    		<property name="driverClassName">
    			<value>${driver}</value>
    		</property>
    		<property name="url">
    			<value>${url}</value>
    		</property>
    		<property name="username">
    			<value>root</value>
    		</property>
    		<property name="password">
    			<value>${password}</value>
    		</property>
    	</bean>

3.创建sqlSessionFactory工厂

    		<!-- SqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
<!-- 		<property name="configLocation" value="classpath:mybatis-config.xml"/> -->
		<property name="mapperLocations" value="classpath:com/yufan/daoimpl/*.xml"></property>
		 <property name="typeAliasesPackage" value="com.yufan.entity"/>
	</bean>

      mapperLocation mapper的xml映射文件 

       typeAliasesPackage 实体类

 4.为dao层添加事务控制(实例化)

<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
		<property name="mapperInterface" value="com.yufan.dao.UserDao"></property>
		<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
	</bean>
	

    dao必须是一个接口

    会根据工厂的配置自动连接映射文件,完成实例化。

    使用方法:

    ApplicationContext applicationContext = new 
				ClassPathXmlApplicationContext("/com/yufan/util/applicationContext.xml");
		UserDao userDao = (UserDao)applicationContext.getBean("userDao");
		User u = new User(1, "yufan","yufan", true,20);
		userDao.saveUser(u);
		System.out.println("完成");

5.事务控制

<!-- 配置事务管理 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	<!-- 事务相关控制配置 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="remove*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"
				no-rollback-for="java.lang.RuntimeException"/>
			<tx:method name="save*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException"/>
			<tx:method name="modificate*" propagation="REQUIRED" read-only="false" 
				rollback-for="java.lang.RuntimeException"/>
			<tx:method name="create*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException"/>
			<tx:method name="find*" propagation="SUPPORTS"/>
			<tx:method name="query*" propagation="SUPPORTS"/>
			<tx:method name="get*" propagation="SUPPORTS"/>
			<tx:method name="select*" propagation="SUPPORTS"/>
		</tx:attributes>
	</tx:advice>
	
	<!-- 	把事务控制在service层 -->
	<aop:config>
	   <!-- 切入点 -->
   <!--  expression  表达式 execution(* *(..))   为所有的方法加-->
		<aop:pointcut expression="execution(* com.yufan.serviceimpl..*.*(..))" id="pr"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="pr"/>
	</aop:config>

6.service层

<bean id="userService" class="com.yufan.serviceimpl.UserServiceImpl">
		<property name="userDao" ref="userDao"></property>
	</bean>

7.action层

	<bean id="userAction" class="com.yufan.action.UserAction">
		<property name="userService" ref="userService"></property>
	</bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值