1) 使用注解的方式完成框架的集成
1-1) 使用注解的方式集成Struts2框架
1-1-1) 拷贝struts2框架的基础jar包,
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
freemarker-2.3.15.jar
ognl-2.7.3.jar
struts2-core-2.1.8.1.jar
xwork-core-2.1.6.jar
再增加注解jar包
struts2-convention-plugin-2.1.8.1.jar
1-1-2) 创建Action类,符合注解的规则
Action类必须要继承ActionSupport
Action类所在的包的名称必须以action结尾
1-1-3) 在Action类中使用注解来代替配置文件
1-1-4) 修改web.xml,增加对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>*.action</url-pattern>
</filter-mapping>
2) 使用注解的方式集成Spring框架
applicationContext.xml中配置
<!-- 扫描注解类 -->
<context:component-scan base-package="com.dotoyo.*"></context:component-scan>
1-2-1) 拷贝spring框架的基础jar包
commons-logging.jar
log4j-1.2.15.jar
spring.jar
1-2-2) 配置业务类,并且增加注解
1-2-3) 修改web.xml, 增加对spring框架的支持
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
1-2-4) 将spring框架和struts2框架集成在一起。
拷贝集成jar包 : struts2-spring-plugin-2.1.8.1.jar
3) 将Hibernate框架使用注解的方式集成到项目中。
1-4-1) 拷贝框架的相关jar包。
antlr-2.7.6.jar
asm.jar
c3p0-0.9.1.jar
cglib-2.1.3.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
ejb3-persistence.jar
hibernate3.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
jta.jar
mysql-connector-java-3.1.13-bin.jarr
slf4j-api-1.5.0.jar
slf4j-log4j12-1.5.0.jar
1-4-2) 增加配置文件
主配置文件由Spring替换。
映射文件由注解功能实现,所以也不需要。
1-5) 将spring框架和hibernate框架集成在一起
1-5-1) 增加数据库的相关jar包以及AOP的相关JAR皉
aspectjrt.jar
aspectjweaver.jar
1-5-2) 修改配置对象,创建核心对象
使用注解的方式配置核心对象
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="show_sql">true</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com/bjpowernode/ssh/annotation/bean</value>
</list>
</property>
</bean>
1-5-3) dao对象继承spring提供的支持类
因为自动装配功能采用注解方式实现,可是方法是final的,无法重新,就无法增加注解
所以设置其他的方法来调用父类的方法,将对象设置到父类中。
@Resource(type=SessionFactory.class)
public void setSuperSessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
1-6) 增加OpenSessionInView过滤器,解决lazy问题。
将过滤器放置在struts2前面进行配置.
<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>