面试或考试时有可能遇到没有网络,很多配置不记得怎么写,可以从示例中或帮助文档中查询。
SSH导包:
asm包spring-mybatis-jar和spring-core-jar有集成。
struts2包中:antlr-2.7.2和aopalliance-1.0需要导入,前者是将hql语句编译为sql语句的转换,后者是aop需要依赖的包。
struts2-spring-plugin-2.3.15.3包是struts2无缝集成spring的必备包。
Spring AOP所需包:aspectjweaver.jar
DBCP连接池所需包:commons-pool-1.6.jar、commons-dbcp-1.4.jar
C3P0所需包:hibernate的lib/optional/c3p0中有。
MyEclipse xx\configuration\org.eclipse.osgi\bundles\104\1\.cp\data\3.1\deps路径中含有:
aopalliance-1.0、aspectjweaver-1.6.9、c3p0-0.9.1.2、cglib-nodep-2.2、commons-dbcp-1.4、commons-pool-1.5.3、log4j-1.2.16等数据链接所需包。
如找不到路径可先创建一个项目,让后用MyEclipse添加spring3.x的包,在从里面找路径。
框架搭建:
util:
ActionUtil.java
HibernateTemplate.java(不使用spring就用HibernateUtil.java加载配置文件)
dao、service、pojo(使用hibernate注解方式)、action(@Scope("prototype")多例)、
配置文件:
struts.xml(dtd文件:struts-2.3.15.3\src\core\src\main\resources)、
让struts2可以打印出异常配置拦截器属性(log4j配置文件中加上log4j.logger.com.opensymphony.xwork2=ERROR):
<interceptors>
<interceptor-stack name="myAuth">
<interceptor-ref name="defaultStack">
<param name="exception.logEnabled">true</param>
<param name="exception.logLevel">error</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
log4j.properties(struts-2.3.15.3\apps\struts2-blank示例项目中有)
jdbc.properties:
MySql:
driverClassName:com.mysq.jdbc.Driver
url:jdbc:mysql://localhost:3306/db
Oracle:
driverClassName:oracle.jdbc.driver.OracleDriver
url:jdbc:oracle:thin:@localhost:1521:orcl
applicationContext.xml(dtd文件:spring-framework-4.0.0.M1\schema):
sessionFactory配置到hibernate帮助页面找
切面表达式:execution(* com.service..*.*(..))
web.xml:
struts2:配置过滤器:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter(struts-core包)
spring:配置contextConfigLocation配置文件
配置监听器org.springframework.web.context.ContextLoaderListener(spring-web包)
hibernate跨session配置
懒加载后session关闭,到前台拿数据会异常,必须在struts2的filter前面:
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessionFactory</param-value> //默认sessionFactory
</init-param>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>