标签:
这里是个人对SSH框架搭建的一点心得,仅供新手,勿喷
首先,搞清楚分层,
视图层 --》 控制层 --》 业务层 --》 DAO层--》 持久层
搭建的顺序是从后向前,搭建一点测试一点,免得都最后找错误太过于繁琐
先搭建持久层,这里是hibernate框架接管
1、建立javaBean对象(ElecText.jvav)
属于持久层对象(PO对象)
属性ID、名称、日期、备注
2、创建映射文件ElecText.hbm.xml
建立PO对象与数据库表Elec_Text的关联关系
3、创建Hibernate.cfg.xml文件,配置连接数据库的信息
4.写测试文件,是否搭建成功
DAO层:
这里掌管的是和数据库有关的CRUD方法,采用的是面向接口的方法,一个DAO类实现一个接口,通过接口
使用方法
业务层:
①先spring
②引jar包
③编写beans.xml文件,放在src目录下
④测试spring是否能够工作
⑤加入hibernate
⑥因为是SSH,所以hibernate被spring接管了hibernate.cfg.xml文件对象映射文件,sessionfactory在spring文件中配置即可
⑦在beans.xml文件中配置数据源
<!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/elec"/> <property name="username" value="root"/> <property name="password" value="123456"/> <!-- 连接池启动时的初始值 --> <property name="initialSize" value="30"/> <!-- 连接池的最大值 --> <property name="maxActive" value="500"/> <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --> <property name="maxIdle" value="2"/> <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> <property name="minIdle" value="1"/> </bean>
这里也能够全部交给hibernate.cfg.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" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 1配置注解的自动扫描范围 --> <context:component-scan base-package="cn.itcast.elec"></context:component-scan> <!-- 2配置数据源--> <!--3 创建sessionfactory工厂--> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value> classpath:hibernate.cfg.xml </value> </property> </bean> <!--4 事物管理器--> <bean id="txManage" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"> </property> </bean> <!--5 以注解的 形式管理事物--> <tx:annotation-driven transaction-manager="txManage" /> <!-- 配置自己的sessionfactory工厂,模拟模板的机能实现 --> <bean id="ElecText_impl" class="cn.itcast.elec.impl.ElecText_impl"> <property name="sessionFactory" ref="sessionFactory"> </property> </bean> </beans>
⑧配置sessionfactory工厂
<!--3 创建sessionfactory工厂--> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 设置数据源 --> <property name="dataSource" ref="dataSource"/> <property name="mappingResources"> <!-- 接管hibernate的对象映射文件 --> <list> <value>cn/itcast/elec/domain/ElecText.hbm.xml</value> </list> </property> <!-- hibernate的文件 --> <property name="hibernateProperties"> <value> <!-- SQL dialect --> hibernate.dialect = org.hibernate.dialect.MySQL5Dialect hibernate.connection.autocommit = true hibernate.show_sql = true hibernate.hbm2ddl.auto = update </value> </property> </bean>
⑨编写domain对象和映射文件,然后进行简单的测试
⑩考虑分层 使用事务管理器统一管理事务
<!--4 事物管理器--> <bean id="txManage" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"> </property> </bean> <!--5 以注解的 形式管理事物--> <tx:annotation-driven transaction-manager="txManage" />
启动事务注解
@Transactional(readOnly=true)
⑩②在hibernate里面配置二级缓存
⑩③整合struts2
<1>引包
<2>创建struts.xml,放在/WEB-INF目录下
14.在初始化的struts的同时初始化spring容器
<!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找 -->
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <!-- 对Spring容器进行实例化 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
通过获取spring容器实例
HttpServletRequest request = ServletActionContext.getRequest(); //通过预加载后对spring的容器进行获取 WebApplicationContext app = WebApplicationContextUtils. getWebApplicationContext(request.getSession().getServletContext());
通过上面的配置直接代替了下面的
ApplicationContext app = new ClassPathXmlApplicationContext("beans.xml");
14.让spring接管struts组件
<1>在struts.xml添加代码
<!-- 配置代理请求处理 DelegatingRequestProcessor ,它的用户是 -->
<controller> <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/> </controller>
<2>在beans.1中配置action
<bean name="elecTextAction" class="cn.itcast.elec.action.Elect_Test_Action" />
15.解决中文乱码问题
1.自己配置过虐器
2.使用spring框架提供的处理中文乱码的过虐器
16.spring可以用注解的方式配置属性
<1>在需要注入的属性加入@Resource 启动byname方式进行注入属性值
<2><!-- 启动注解扫描 -->
<context:annotation-config/>
标签:
原文地址:http://www.cnblogs.com/sunxun/p/4202284.html