`

IDEA搭建struts2+hibernate5+spring4

 
阅读更多

一:新建工程:  选择Spring,Web Application, Struts2, Application Server(选择tomcat就可以了),Hibernate;等待IDEA下载依赖包

二:spring的引入与测试:

测试的包:src下面新建test包

TestService.java

package test;
public class TestService {  
    private String name;  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public String getName() {  
  
        return name;  
    }  
  
    public void hello()  
    {  
        System.out.println("hello "+ getName());  
    }  
}  

 第一个配置文件(applicationContext.xml)web/Web-INF目录下新建spring的配置文件applicationContext.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"  
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">  
      
           <bean class="test.TestService" id="testService">  
                  <property name="name" value="spring"></property>  
           </bean>  
    </beans>  

 Test.java

package test;  
  
import org.springframework.context.ApplicationContext;  
import org.springframework.context.support.FileSystemXmlApplicationContext;  
  
public class Test {  
    public static void main(String[] args)  
    {  
        ApplicationContext ac = new FileSystemXmlApplicationContext("web/WEB-INF/applicationContext.xml");  
        TestService ts = (TestService)ac.getBean("testService");  
        ts.hello();  
    }  

 直接测试Test的main函数,操作是右击编辑区,点击Run "Test.main()",正常的话,应该会出现如下效果:

三:Hibernate的引入与测试:

1>要额外引入一些依赖:mysql-connector-java-5.1.26,commons-dbcp2-2.1,commons-pool2-2.4.1;直接使用IDEA的maven功能下载依赖包,然后直接引入:File->project Structure->Libraries->点击右侧的加号->From maven; 然后输入对应的包名就可以了;

2>使用IDEA的persistence下的OR映射功能;       (a)建立数据库

    (b)需要先配置applicationContext.xml,让其接管Hibernate的配置;如果没有进行这一步的话,在Persistence界面是不会出现sessionFactory的。

配置内容:

    <!-- data connection -->  
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">  
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>  
        <property name="url" value="jdbc:mysql://localhost:3306/TESTDB"></property>  
        <property name="username" value="root"/>  
        <property name="password" value="root"/>  
    </bean>  
      
      
    <!-- session factory -->  
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
        <property name="dataSource" ref="dataSource"></property>  
        <property name="hibernateProperties">  
            <props>  
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>  
                <prop key="hibernate.show_sql">true</prop>  
                <prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/TESTDB</prop>  
                <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>  
            </props>  
        </property>  
    </bean>  

    (c)进行持久化类生成:右击sessionFactory->Generate Persistence Mapping

选择我们建好的数据库:

  (d)新建dao层和daoImpl层:

  

package dao
public interface UserDao {  
    public void addUser(User user);  
}  

   sessionFactory注入dao层

    package dao;  
      
      
    import bean.User;  
    import org.hibernate.Session;  
    import org.hibernate.SessionFactory;  
    import org.hibernate.Transaction;  
    import org.springframework.beans.factory.annotation.Autowired;  
    import org.springframework.beans.factory.annotation.Qualifier;  
      

    public class UserDaoImpl implements UserDao {  
      
        @Qualifier("sessionFactory")  
        @Autowired  
        private SessionFactory sessionFactory;  
      
        @Override  
        public void addUser(User user) {  
            Session s = sessionFactory.openSession();  
            Transaction tx= s.beginTransaction();  
            s.save(user);  
            tx.commit();  
        }  
      
        public void setSessionFactory(SessionFactory sessionFactory) {  
            this.sessionFactory = sessionFactory;  
        }  
    }  

 (e)新建service层和serviceImpl层:

  

package service

public interface UserService{ 
public void addUser(User user);

}

 dao层注入service层:

package service;

public class UserServiceImpl implements UserService{

private UserDao userDao;

public void setUserDao(UserDao userDao){
  this.userDao = userDao;
}

@override
 
public void addUser(User user){
  
 userDao.addUser(user);
}

}

 让Spring接管Hibernate的配置文件:

    <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">  
        <bean class="test.TestService" id="testService">  
            <property name="name" value="spring"></property>  
        </bean>  
      
        <!--配置数据源 -->  
        <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">  
            <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>  
            <property name="url" value="jdbc:mysql://localhost:3306/user"></property>  
            <property name="username" value="root"/>  
            <property name="password" value="root"/>  
        </bean>  
      
      
        <!-- sessionFactory -->  
        <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">  
            <property name="dataSource" ref="dataSource"></property>  
            <property name="hibernateProperties">  
                <props>  
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>  
                    <prop key="hibernate.show_sql">true</prop>  
                    <prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/user</prop>  
                    <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>  
                </props>  
            </property>
           <!--配置映射文件-->  
            <property name="mappingLocations">  
                <list>  
                    <value>classpath:bean/User.hbm.xml</value>  
                </list>  
            </property>  
        </bean>  
      
      
        <!--hibernate测试加入-->  
        <bean id="userDao" class="dao.UserDaoImpl">  
            <property name="sessionFactory" ref="sessionFactory"></property>  
        </bean>  
      
    </beans>  

 进行测试:Test.java

public class Test {  
    public static void main(String[] args)  
    {  
        ApplicationContext ac = new FileSystemXmlApplicationContext("web/WEB-INF/applicationContext.xml");  
        UserDao userDao = (UserDaoImpl)ac.getBean("userDao");  
        User user = new User();  
        user.setName("kaka");  
        user.setPhone("123456123");  
        userDao.addUser(user);  
    }  
}  

 运行:

查看MySQL数据库,看是否增加了一条记录

三:struts2的引入与测试:

引入两个依赖:struts2-spring-plugin-2.3.24,spring-web-3.0.5和log4j-1.2.14.jar;选择手工加入;先如下下载好,"Download to "不要打勾:

下载struts2-spring-plugin-2.3.24会附带下载好spring-web-3.0.5; 下载完后查看下下载的目录, 只是查看下下载目录就可以了如下:

直接复制这两个包,放到项目的lib文件下,之后右击一下lib下的刚引入的这两个jar包,"Add as Library";对于log4j-1.2.14就相对简单,直接打勾Download to 就可以了.相关截图如下:

 第三个配置文件:修改web/WEB-INF/web.xml文件,引入struts和spring:

<filter>  
        <filter-name>struts2</filter-name>  
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>struts2</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
  
    <!--spring的监听器配置开始-->  
    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener>  
  
    <context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>WEB-INF/applicationContext.xml</param-value>  
    </context-param>  

 新建Action在struts.xml中配置:

第四个配置文件:struts.xml:

 

<?xml version="1.0" encoding="UTF-8"?>  
  
<!DOCTYPE struts PUBLIC  
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
        "http://struts.apache.org/dtds/struts-2.3.dtd">  
  
<struts>  
    <!-- struts的action配置文件 -->  
    <!-- 将action托管给spring -->  
    <constant name="struts.objectFactory" value="spring" />  
  
    <!-- 所有的action都应该放在对应的package下 -->  
    <!--action的class属性不再是具体的类,而是spring配置文件配置的bean id-->  
    <package name="user" namespace="/user" extends="struts-default">  
        <action name="add" class="userAction" method="add">  
            <result name="success">/success.jsp</result>  
        </action>  
    </package>  
</struts>

最后!!!

所有类的实例都由spring去管理(applicationContext.xml)

 

<bean id="myIndexAction" class="ssh.action.UserAction" scope="prototype">
    <property name="userService" ref="userService"/>
 </bean>

<bean id="userService" class="ssh.service.UserServiceImpl" scope="prototype">
    <property name="userDao" ref="userDao"/>
</bean>

<bean id="userDao" class="ssh.dao.UserDaoImpl" scope="prototype">
       <property name="sessionFactory" ref="sessionFactory" />
   </bean>
<!--前面已经注册过sessionFactory-->

 配置流程详见:http://blog.csdn.net/sysushui/article/details/68937005

 请求传递过程分析详见:http://www.cnblogs.com/laibin/p/5847111.html

 

 

 

分享到:
评论

相关推荐

    ssh框架整合详细步骤(spring+struts2+hibernate)

    ### SSH框架整合详细步骤(spring+struts2+hibernate) #### 一、整合概述 在现代Web应用开发中,SSH(Struts2、Spring、Hibernate)框架因其各自独特的功能和优势,常被组合使用以构建高效、稳定且易于维护的系统...

    Struts2+Hibernate+Spring框架搭建(三)

    这篇博客“Struts2+Hibernate+Spring框架搭建(三)”着重介绍如何整合这三个框架,构建一个完整的Java Web项目。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它主要用于控制应用...

    Maven项目ssh Struts2+hibernate+Spring+maven框架.zip

    在"SSH Struts2+hibernate+Spring+maven框架.zip"这个项目中,开发者可以通过Maven构建系统来管理项目依赖,使用Struts2处理HTTP请求和展现逻辑,Hibernate进行数据持久化,而Spring则负责组件的管理和事务控制。...

    java8+tomcat8+struts2.5+spring4.3+hibernate5.2框架搭建详细过程

    ### Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 框架搭建详细过程 #### 一、环境配置与准备 在搭建一个基于Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 的项目前,首先需要对开发环境...

    JAVA论坛系统源码(Struts 2+Hibernate+Spring实现)

    4. **整合三大框架**:Struts 2、Hibernate和Spring的整合使得开发过程更加高效。Spring管理Struts 2的Action实例,通过依赖注入提供所需的业务服务。同时,Spring也可以管理和协调Hibernate的数据访问层,处理...

    Struts2+Hibernate+Spring框架搭建(一)

    Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责不同的职责,共同构建了一个强大的企业级应用架构。本篇文章将详细讲解如何利用这三个框架进行整合搭建,旨在为初学者提供一个清晰的入门指南。...

    基于struts2+spring2+hibernate3的注册登陆

    6. **文件结构**:尽管没有提供具体的文件列表,但一个标准的Struts2+Spring2+Hibernate3项目通常包含以下部分:源代码(src目录),配置文件(如struts.xml、spring配置文件、hibernate配置文件),Web资源(Web-...

    基于Struts2+Hibernate+Spring的公司员工管理系统

    【基于Struts2+Hibernate+Spring的公司员工管理系统】是一个典型的Java企业级应用程序,它利用了Struts2、Hibernate和Spring这三大主流框架构建。这个系统设计的主要目标是为了有效地管理和组织公司的员工信息,提高...

    Struts1.2+Hibernate3.0+Spring2+DWR OA 办公自动化管理系统

    总之,"Struts1.2+Hibernate3.0+Spring2+DWR"的组合为开发高效、稳定的OA办公自动化管理系统提供了一个强大而成熟的架构,使得开发者可以专注于业务逻辑的实现,而非底层技术的细节。通过学习和实践这个系统,开发者...

    Struts2+Hibernate开发环境搭建

    通过以上步骤,一个基本的Struts2+Hibernate开发环境就搭建完成了。在实际开发中,还需要根据项目需求进行更深入的定制和优化,例如加入Spring框架进行依赖注入,或者使用MyBatis进行更灵活的SQL操作。

    spring+struts2+hibernate实现的Java web论坛源码.zip

    本资源是一个基于Spring、Struts2和Hibernate框架的Java Web论坛源码,旨在提供一个学习和实践企业级Web开发的实例。Spring作为IoC(控制反转)和AOP(面向切面编程)容器,负责管理应用程序的组件和依赖关系;...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门012

    Struts2、Spring3、Hibernate4、Maven和EasyUI是Java Web开发中常见的开源框架和技术,它们在构建高效、可维护的企业级应用程序方面发挥着关键作用。本篇将详细介绍这些技术及其整合入门的知识点。 **Struts2** 是...

    Struts+Hibernate+Spring整合项目之登录部分

    总的来说,"Struts+Hibernate+Spring整合项目之登录部分"涉及到Java Web开发中的多个核心技术点,包括MVC架构的理解、ORM工具的使用、依赖注入的实践以及安全机制的实施。通过这个项目的实现,开发者可以深入理解...

    Idea+maven搭建SSH(struts2+hibernate5+spring5)环境的方法步骤

    在本文中,我们将详细介绍如何使用IntelliJ IDEA (Idea) 和 Maven 来构建一个基于SSH(Struts2 + Hibernate5 + Spring5)的开发环境。这个环境将为Java Web项目提供一个强大的基础架构,方便进行业务逻辑处理、数据...

    Struts2+Hibernate+Spring整合后的增删改查

    在"Struts2+Hibernate+Spring整合后的增删改查"项目中,开发者已经完成了一个基础的CRUD(创建、读取、更新和删除)功能示例,这对于初学者来说是非常有价值的实践案例。以下是对该项目中涉及的知识点的详细解释: ...

    struts1+spring2.5+hibernate3.0集成带数据库

    Struts1、Spring2.5和Hibernate3.0是Java Web开发中经典...在实际开发中,由于Struts1和Spring2.5已经相对老旧,现在更多地推荐使用Struts2、Spring4及以上版本和Hibernate5及以上版本,以获得更好的性能和更多的特性。

    搭建第一个ssh2(struts2+hibernate+spring)

    SSH2 是一个流行的Java开发框架组合,由Struts2、Hibernate和Spring三个组件构成,用于构建企业级的Web应用程序。这个框架提供了模型-视图-控制器(MVC)架构,数据持久化,以及依赖注入等功能,极大地提高了开发...

    Struts2+hibernate所需的包文件

    了解这些知识点后,结合提供的"Struts2+hibernate3包文件",开发者可以快速搭建一个整合Struts2和Hibernate的开发环境,开始构建基于这两者的企业级Web应用。在具体使用过程中,可能还需要根据实际需求调整配置、...

    struts2.3+hibernate4.1+spring3.2+EasyUI1.36整合实现的java后台管理系统

    Struts2.3、Hibernate4.1、Spring3.2和EasyUI1.36是构建Java后台管理系统的四个...通过以上步骤,一个基于Struts2.3、Hibernate4.1、Spring3.2和EasyUI1.36的Java后台管理系统就能顺利搭建起来,提供高效、稳定的服务。

Global site tag (gtag.js) - Google Analytics