簡單的搭建一個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框架就完成了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM