新入门,配了一天才整合成功,整合问题很多,欢迎一起交流
项目在git
https://github.com/monimm/SSH
1.环境
- Struts2:2.5.16
- Spring:5.0.5.RELEASE
- Hibernate:5.2.16.Final
- MySQL:5.7.21
- Tomcat 8.5.29
2项目结构
lib
3步骤
1.建立 Dynamic Web Project 项目
2.部署Struts2
- 创建Action类UserAction
- 创建 index.jsp 和 Success.jsp 界面
- 创建并配置struts.xml配置文件
- 在web.xml中配置核心拦截器
Tips1:struts.xml中action的name一定要**对应**index.jsp中的action
Tips2:struts.xml中action的method一定要**对应**UserAction类中的login方法
Tips3:action中的类在托管之前要写全部路径
Tips4:导入的包要手动复制到lib下,否则运行后会找不到
Tips5:请注意struts.xml头部的设置
Tips6:注意拦截器的版本
新版为:org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
验证:
运行程序,访问http://localhost:8080/SSH/index.jsp
出现index界面,点击跳转至success界面
3.整合Spring
- 导入spring所需的包及mysql-connector-java-5.1.46-bin.jar
- 导入整合包struts2-spring-plugin-2.5.16.jar
- 创建applicationContext.xml配置文件
- 在applicationContext.xml其中加入自动扫描设置
- 实现DAO层 Service层类及接口
- 为类加入注解以实现自动装配
- 将Struts交给spring托管
1.在struts.xml中指定spring托管,设置Spring配置文件所在路径
2.在applicationContext.xml启动spring监听,设置监听器
验证:
可在Action DAO层 Service层设置输出语句,以判断执行过程
运行程序,访问http://localhost:8080/SSH/index.jsp
出现index界面,点击跳转至success界面 控制台输出执行过程
至此,spring与struts整合完毕
Tips1:交付spring托管以后,struts.xml中class不能写全名
Tips2:请确保各个bean的注解名称对应清楚,最好加入@Qualifier限定
Tips3:请注意applicationContext.xml头部的设置,否则可能出现context 元素没有被界定
4.整合Hibernate
- 导入hibernate必须包
- 创建数据库表
- 创建 POJO 类User
- 为POJO类设置注解
使用注解实现映射,故没有hibernate.cfg.xml文件 - 在src下创建jdbc.properties指定数据库配置及连接参数
- 在applicationContext.xml设置导入jdbc配置文件
- 设置sessionFactory
- 配置数据源
有三种数据源,此处使用org.apache.commons.dbcp2.BasicDataSource
故导入commons-dbcp2-2.2.0.jar及 commons-pool2-2.5.0.jar
验证:
按用户名”moni2”查询密码,数据库存放结果为2
运行程序,访问http://localhost:8080/SSH/index.jsp
出现index界面,点击跳转至success界面 控制台输出2,验证成功
至此,SSH整合完毕
Tips1: BasicDataSource新版本org.apache.commons.dbcp2.BasicDataSource
Tips2:MySQLDialect 新版本为org.hibernate.dialect.MySQL5Dialect
Tips3:也可直接将数据库配置参数设置在内部
5配置log4j2
使用Log4j可以控制日志信息输送的目的地是控制台、文件、GUI组件,
甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等
Log4j由三个重要的组成构成:
- 日志记录器(Loggers):控制要启