整合SSH
Posted zzzyiren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整合SSH相关的知识,希望对你有一定的参考价值。
Hibernate知识:
1、核心配置文件:
连接数据库信息、连接池配置
映射配置
Struts2:
1、相关操作:
创建方式:
写一个类,写上public String execute();方法
实现Action接口
继承ActionSupport类
配置访问action中的多个方法:
使用通配符
action中获取操作域对象:ServletActionContext
在web.xml配置文件中配置struts2的过滤器
<!-- 配置struts2的核心配置文件 --> <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>
2、核心配置文件
引入头部约束
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<package name="" namespace="/" extends="struts-default"> <!-- 后台配置获取商品分类 --> <action name="" class="" method=""> <result name="success"></result> <result name="error"></result> </action> </package>
Spring框架:
1、核心配置文件
命名格式没有太多要求
引入头部约束
创建对象
xml配置:<bean id="" class=""/>
注解配置:@Commponent(pojo) @Service(service) @Controller(controller) @Respository(dao层)
注入方式:@Autowired
2、ContextLoaderListener监听器
在web.xml配置文件中配置
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param>
SSH整合
1. web应用的三层:
web:struts2
service:spring管理ioc和aop
dao:hibernate操作数据库
struts2核心配置文件编写
1 <!DOCTYPE struts PUBLIC 2 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 3 "http://struts.apache.org/dtds/struts-2.3.dtd"> 4 5 <package name="" namespace="/" extends="struts-default"> 6 <!-- 后台配置获取商品分类 --> 7 <action name="" class="" method=""> 8 <result name="success"></result> 9 <result name="error"></result> 10 </action> 11 </package>
applicationContext.xml配置事务管理和注解扫描
<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 开启注解扫描 -->
<context:component-scan base-package="com.shop.*"></context:component-scan>
<!-- 开启事务管理 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 开启aop注解扫描 -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
applicationContext.xml中配置hibernate所需的数据源,连接池,Session Factory
1 <!-- 配置sessionFactory --> 2 <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 3 <property name="hibernateProperties"> 4 <props> 5 <prop key="hibernate.dialect">org.hibernate.dialect.mysqlDialect</prop> 6 <!-- 配置参数 --> 7 <prop key="hibernate.show_sql">true</prop> 8 <prop key="hibernate.hbm2ddl.auto">update</prop> 9 <prop key="hibernate.format_sql">true</prop> 10 </props> 11 </property> 12 <!-- 注入数据库链接信息 --> 13 <property name="dataSource" ref="DataSource"></property> 14 <!-- 告诉spring去哪里找.hbm.xml文件 --> 15 <property name="mappingDirectoryLocations" value="classpath:com/shop/domain"></property> 16 </bean> 17 18 <!-- 告诉spring去哪里加载properties配置文件 --> 19 <context:property-placeholder location="classpath:db.properties"/> 20 <!-- 让spring创建c3p0 --> 21 <bean name="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 22 <property name="driverClass" value="${driverClass}"></property> 23 <property name="jdbcUrl" value="${jdbcUrl}"></property> 24 <property name="user" value="${user}"></property> 25 <property name="password" value="${password}"></property> 26 </bean>
db.properties配置文件,连接数据库
driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/myuser?useUnicode=true&characterEncoding=UTF-8 user=root password=123456
总结:
1、连接数据库,先获取连接池对象,然后注入到sessionFactory中
2、action是多例的,所以注解要使用@Scope("prototype")
3、dao层操作数据库类继承HibernateDaoSupport
以上是关于整合SSH的主要内容,如果未能解决你的问题,请参考以下文章
全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段
Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用