SSH学习笔记struts(1.3.8)+spring(2.5.6)+hibernate(3.3.1)

ssh(struts+spring+hibernate)框架组合一般步骤顺序:
1.创建web项目引入相应的Spring开发包,创建Spring配置文件applicationContext.xml文件,测试Spring配置是否成功

2.在项目中引入相应的hibernate开发包,hibernate配置文件hibernate.cfg.xml文件、对象映射文件*.hbm.xml文件以及SessionFactory在Spring配置文件applicationContext.xml中配置

3.在applicationContext.xml文件中配置数据源:

<!-- 配置数据源 -->

<bean id="实例化数据源的名" class="org.apache.commons.dbcp.BasicDataSource"

         destroy-method="数据源销毁方法名">

         <property name="driverClassName" value="数据库驱动" />

         <property name="url" value="数据库连接的url" />

         <property name="username" value="用户名" />

         <property name="password" value="密码" />

         <!-- 连接池启动时的初始值 -->

         <property name="initialSize" value="连接池启动时的初始连接数" />

         <!-- 连接池的最大值 -->

         <property name="maxActive" value="连接池最大连接数(最大并发量一般设置为500,在线人数一般是并发量乘以50)" />

         <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->

         <property name="maxIdle" value="最大空闲数" />

         <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->

         <property name="minIdle" value="最小空闲数" />

</bean>

4. 在applicationContext.xml文件中配置会话工厂SessionFactory:

<bean id="实例化会话工厂名" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

         <property name="dataSource" ref="实例化的数据源的名" />

         <property name="mappingResources">

                  <list>

                          [<value>*.hbm.xml(对象映射文件,包含包名路径)</value>]

                  </list>

         </property>

         <property name="hibernateProperties">(hibernate.cfg.xml中对hibernate的配置)

                  <value>[hibernate.属性=属性值]</value>

         </property>

</bean>

5.创建数据域类(domain)和映射文件*.hbm.xml测试Spring和hibernate的结合配置是否成功

6.配置事务管理器统一管理SessionFactory的事务和二级缓存

<bean id="实例化事务处理名" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

         <property name="sessionFactory" ref="实例化会话工厂名" />

</bean>

<tx:annotation-driven transaction-manager="实例化事务处理名"/>(启用事务注解,在类或者方法名前一行添加@Transactional,Spring会管理类中所有方法的事务或者指定方法的事务)

7.引入struts开发包,创建struts配置文件struts-config.xml并进行相应配置,一般放在/WEB-INF目录下,在web.xml文件中指定struts的配置文件和指定spring的配置文件,tomcat服务器在加载web.xml文件时会根据web.xml文件中的配置实例化struts和spring即tomcat服务器管理struts和spring容器

web.xml文件中指定Spring的配置文件:

<context-param>

         <param-name>contextConfigLocation</param-name>

         <param-value>classpath:Spring配置文件名(包含路径,默认web根目录即src目录)</param-value>

</context-param>

<listener>

         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>(对Spring容器进行实例化)

在web.xml文件中指定了Spring的配置文件,但Spring没有管理struts时,在struts控制器中可以通过WebApplicationContext 名称=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());直接获得Spring容器即Spring的ApplicationContext

8.在spring配置文件applicationContext.xml中配置struts即控制器action的配置:

<bean name="网址访问的资源名称一般是(/资源名)" class="指定控制器类的路径(包含包名)"></bean>

在struts配置文件中加入与spring关联的配置:

<controller>

         <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor" />

</controller>

Spring管理struts后可以通过设置spring配置文件applicationContext.xml中bean标签的scope属性解决action是单例的问题

9. 配置过滤器解决中文乱码问题:

在web.xml文件中指定自定义过滤器或者在web.xml文件中指定Spring框架提供的处理中文乱码的过滤器:

<filter>

         <filter-name>encoding</filter-name>

         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

         <init-param>

                  <param-name>encoding</param-name>

                  <param-value>UTF-8</param-value>

         </init-param>

</filter>

<filter-mapping>

         <filter-name>encoding</filter-name>

         <url-pattern>/*</url-pattern>

</filter-mapping>

在applicationContext.xml文件中配置启用注解组件扫描:

<context:annotation-config></context:annotation-config>

在指定的类属性的前一行添加@Resource注解表示Spring会根据名称匹配方式给指定的类属性赋值初始化

在指定的控制器类的前一行添加@Controller注解表示Spring会根据名称匹配方式给指定的控制器类初始化

在指定的服务类的前一行添加@Service注解表示Spring会根据名称匹配方式给指定的服务类初始化

完全自动注入使用所有注解即(@Resource,@Controller,@Service)需要在applicationContext.xml文件中配置注解组件扫描:<context:component-scan base-package="扫描的包名(即控制器服务类所在的包)"></context:component-scan>

 

在web.xml文件中配置Spring提供的OpenSessionInViewFilter过滤器的方法解决延时加载

<filter>

         <filter-name>OpenSessionInViewFilter</filter-name>

         <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

</filter>

<filter-mapping>

         <filter-name>OpenSessionInViewFilter</filter-name>

         <url-pattern>/*</url-pattern>

</filter-mapping>

Sns系统(社会化网络系统)

struts(1.3.8)+spring(2.5.6)+hibernate(3.3.1)编译环境和运行环境一致

mysql 通过txt文件批量导入到指定表中数据命令:LOAD DATA LOCAL INFILE 'D:\\data.txt(文件路径,全路径)' INTO TABLE 表名(mysql数据库中的表名) FIELDS TERMINATED BY '\t';

eclipse使用hibernate插件生成实体类以及对象映射文件时,连接的数据库不能又大写的英文字母,否则生成的实体类以及对象映射文件没有关联关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值