简单的搭建一个SSH框架

准备工作:
1.新建一个动态web项目(不要xml文件,使用全注解)
2.往lib加东西(注意别重复)
   Strust2最小包+3个包(14个)、Hibernate的包、Spring的包、还有ojdbc6.jar
3.resource 资源文件夹

  jdbc.properties、log4j.propertiesa、struts.xml

第一步:让Struts2和Spring相结合

 1.需要一个全注解的配置类 WebInitialize.java  用来代替web.xml

package com.zhaoming.config;

import javax.servlet.FilterRegistration.Dynamic;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
import org.springframework.orm.hibernate4.support.OpenSessionInViewFilter;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;

public class WebInitializer implements WebApplicationInitializer {

    public void onStartup(ServletContext servletContext) throws ServletException {
        servletContext.addFilter("hibernateFilter", OpenSessionInViewFilter.class).addMappingForUrlPatterns(null, false, "/*");  
        AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext();  
        root.register(DataSourceConfig.class);
        //servletContext.setInitParameter("contextConfigLocation", "classpath:applicationContext.xml");
        servletContext.addListener(new ContextLoaderListener(root));
        Dynamic filter=servletContext.addFilter("struts2", new StrutsPrepareAndExecuteFilter());
        filter.addMappingForUrlPatterns(null,false,"/*");
    }  
}

  2.新建index.jsp,一个单独的转向到com.zhaoming.action  ——>InitAction,成功返回login.jsp,测试成功。

第二步:把 hibernate和Spring结合在一起
  创建一个与hibernate相关的DataSourceConfig配置类,主要工作:
    (1)连接数据库
    (2)获取sessionFactory
    (3)事务控制

package com.zhaoming.config;

import java.util.Properties;
import javax.annotation.Resource;
import org.hibernate.SessionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.alibaba.druid.pool.DruidDataSource;


@Configuration
@ComponentScan("com.zhaoming")
@EnableTransactionManagement        //开启事务控制
@PropertySource("classpath:jdbc.properties")
public class DataSourceConfig {

    @Resource
    Environment env;
    @Resource
    DruidDataSource dataSource;
    @Resource
    SessionFactory sessionFactory;
    
    @Bean(name="dataSource")
    public DruidDataSource getDruidDataSource(){
        DruidDataSource dds = new DruidDataSource();
        dds.setUrl(env.getProperty("jdbc.url"));
        dds.setUsername(env.getProperty("jdbc.username"));
        dds.setPassword(env.getProperty("jdbc.password"));
        dds.setDriverClassName(env.getProperty("jdbc.class_name"));
        return dds;
    }
    
    @Bean(name="sessionFactory")
    public LocalSessionFactoryBean getLocalSessionFactoryBean(){
        LocalSessionFactoryBean lsfb = new LocalSessionFactoryBean();
        lsfb.setDataSource(dataSource);
        lsfb.setPackagesToScan("com.zhaoming");
        Properties prop = new Properties();
        prop.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle9Dialect");
        prop.setProperty("hibernate.current_session_context_class", "org.springframework.orm.hibernate4.SpringSessionContext");
        prop.setProperty("show_sql","true");
        lsfb.setHibernateProperties(prop);
        return lsfb;        
    }
    
    @Bean(name="transactionManager")
    public HibernateTransactionManager getHibernateTransactionManager(){
        HibernateTransactionManager htm = new HibernateTransactionManager();
        htm.setSessionFactory(sessionFactory);
        return htm;
        
    }
    
}

测试是否能获取到session

第三步:根据自己的需要去写Dao、Service,贯穿整个项目。  

    1.通过MyEclipse建一个User实体类
    2.UserDaoIface
    3.UserDaoImp    ——  测试
    4.ServiceIface
    5.ServiceImp    ——  测试
    6.jsp
    7.相对应的Action  ——  测试

至此,一个简易的SSH框架就完成了。

原文地址:https://www.cnblogs.com/zmlion1995/p/5808090.html