您的位置:首页 > 编程语言 > Java开发

SSM 框架 + maven 整合 搭建

2018-03-07 19:50 387 查看

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>


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 中需要添加的代码
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息