Maven管理下的Struts2+Spring+Mybatis框架搭建

来源:互联网 发布:简易画图纸软件 编辑:程序博客网 时间:2024/06/05 02:28
Step1、新建一个maven工程
下一步
下一步,选择maven-archetype-webapp

下一步:

本来应该是SSM。。。。
finish完成。
现在的目录结构是这样的


接下来:新增source folder: src/main/java, src/test/java, src/test/resources

右击工程,build path,配置build path,修改源文件的输出路径

然后配置project Facets

点击convert to faceted from...

OK,启动工程,在浏览器中输入http://localhost:8080/S2SS-demo/



Step2: 添加maven框架
首先在pom.xml文件中添加maven依赖的jar包。
<!-- 添加Struts依赖 -->
     <dependency>  
        <groupId>org.apache.struts</groupId>  
        <artifactId>struts2-core</artifactId>  
        <version>2.3.15.1</version>  
    </dependency>  
然后在resource文件夹下新增struts.xml文件。

然后在web.xml文件中添加struts的配置

感觉没什么问题,也在web.xml中配置了welcome-file=index.jsp,但访问http://localhost:8080/S2SS-demo/会出异常,There is no Action mapped for namespace [/] and action name [] associated with context path [/S2SS-demo],http://localhost:8080/S2SS-demo/index.jsp可以正常访问,应该是被struts拦截了,没找到破的方法。
UserAction定义了两个方法,login_input & login.
struts2的action中,name可以使用通配符。例如<action name="*User" class="com.s2ss.demo.UserAction" method="{1}">,可以匹配任何的以User结尾的类com.s2ss.demo.UserAction中的action方法。

index.jsp页面是这个样子的
<html>
<body>  
<a href="login_input.action">GO</a>
</body>
</html>
点击GO,会执行action中的login_input方法,该方法返回字符串“success”,根据struts中的配置转到login.jsp页面。


step3:添加spring框架
和struts思路差不多。。。。
1、首先在pom.xml文件中添加spring相关的依赖。
<!-- 添加Spring依赖 -->
    <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</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-context</artifactId>
  <version>${spring.version}</version>
 </dependency>
 
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>${spring.version}</version>
 </dependency>

另外添加struts中使用spring的插件
<dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId>struts2-spring-plugin</artifactId>
  <version>${struts.version}</version>
 </dependency>  


2、然后在web.xml中配置spring监听
    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener>  
    <context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>classpath:/applicationContext.xml</param-value>  
    </context-param>  

3、新增applicationContext.xml,注入bean
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-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
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-3.0.xsd">
          
<bean id="userAction" class="com.s2ss.demo.UserAction" scope="prototype">
</bean>
</beans>

4、此时,struts中的action的class就可以这么写了~

要跟bean的id一致~~粘上代码吧,万一想偷懒呢~~
<package name="p_user" extends="struts-default">
  <action name="login_input" class="userAction" method="login_input">
   <result name="success">
    /login.jsp
   </result>
  </action>
  <action name="login" class="userAction" method="login">
   <result name="success">
    /login_success.jsp
   </result>
  </action>
 </package>

step4:添加Mybatis框架

1、pom.xml文件中添加依赖
<!-- 添加MyBatis依赖 -->  
<!--注入datasource依赖-->   
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>${spring.version}</version>
 </dependency>


   <dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>1.2.0</version>
 </dependency>
 <dependency>
     <groupId>org.mybatis</groupId>
     <artifactId>mybatis</artifactId>
     <version>3.2.3</version>
   </dependency>
<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc14</artifactId>
  <version>10.2.0.2</version>  
 </dependency>

2、spring中注入sqlSessionFactory
 <bean id="dataSource"
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName">
   <value>oracle.jdbc.driver.OracleDriver</value>
  </property>
  <property name="url">
   <value>jdbc:oracle:thin:@ip:port/**</value>
  </property>
  <property name="username">
   <value>**</value>
  </property>
  <property name="password">
   <value>**</value>
  </property>
 </bean>

  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <!-- 自动到mappers包下面去搜索mybatis的映射文件 -->
    <property name="mapperLocations" value="classpath*:mapper/*.xml" />
  </bean>

  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
  </bean>

    <!-- DAO -->
 <bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean" >
  <property name="mapperInterface" value="com.s2ss.demo.dao.UserDao"></property>
  <property name="sqlSessionFactory" ref="sqlSessionFactory" />
 </bean>
 
 <bean id="userService" class="com.s2ss.demo.service.impl.UserServiceImpl">
  <property name="userDao" ref="userDao" />
 </bean>  

 <bean id="userAction" class="com.s2ss.demo.action.UserAction" scope="prototype">
    <property name="userService" ref="userService" />  
 </bean>

service,dao接口和类文件不贴了。mapper中只列了一个简单的sql

大概就是这个样子了。
0 0