Struts2.5.30,Hibernate5.6.8.Final,Spring5.3.19整合
Struts2.5.30,Hibernate5.6.8.Final,Spring5.3.19 整合
创建新项目 hoa
IDEA->new->Project,创建一个 Maven 的 webapp 项目,选择 org.apache.maven 的 webapp 骨架。
注意 JDK 设置为 1.8
配置 Jetty runner
安装 Jetty Runner 插件:直接在 IDEA 的 plugins 里面搜索 Jetty Runner 安装即可。
点击 Add Configuration,点击加号,找到 Jetty Runner
Jetty 选择
9.4.46.v20220331
,注意:11 需要 jdk11,9.4 支持 jdk1.8设置 Jetty Runner 文件目录:
/Users/terwer/.m2/repository/org/eclipse/jetty/jetty-runner/9.4.46.v20220331/jetty-runner-9.4.46.v20220331.jar
注意设置好项目目录:
/Users/terwer/Documents/workspace/hoa/src/main/webapp
类路径:
/Users/terwer/Documents/workspace/hoa/target/classes
还有上下文:
/hoa
端口:
8880
模块选择:
hoa
查看运行结果
集成 Hibernate
pom.xml 加上 hibernate 的依赖
1 | <!-- hibernate --> |
集成 Spring
1 | <!-- Spring --> |
在 webapp 的 WEB-INF 目录创建 applicationContext.xml
1 |
|
web.xml 加上 listener
1 | <!-- Spring --> |
看启动日志,如下图说明 Spring 集成成功:
集成 struts2
Pom.xml 加上 struts2 的依赖
1
2
3
4
5
6
7
8
9
10
11
12
13<!-- struts2 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.30</version>
</dependency>
<!-- struts2 + spring -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.5.30</version>
</dependency>自定义一个过滤器 HoaStartupFilter,继承 StrutsPrepareAndExecuteFilter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27/**
* 自定义过滤器
*
* @name: HoaStartupFilter
* @author: terwer
* @date: 2022-05-06 10:06
**/
public class HoaStartupFilter extends StrutsPrepareAndExecuteFilter {
private static final Logger logger = LoggerFactory.getLogger(HoaStartupFilter.class);
public void init(FilterConfig filterConfig) throws ServletException {
super.init(filterConfig);
logger.info("struts2 inited");
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
super.doFilter(servletRequest, servletResponse, filterChain);
}
public void destroy() {
super.destroy();
logger.info("hoa stoped");
}
}web.xml 加上 struts2 的过滤器
1
2
3
4
5
6
7
8
9<!-- Struts2 -->
<filter>
<filter-name>hoa</filter-name>
<filter-class>com.terwergreen.hoa.filter.HoaStartupFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hoa</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>创建 struts.xml,注意目录是在资源目录
1
2
3
4
5
6
<struts>
</struts>启动验证:
集成 Logback,统一日志框架
pom.xml 加上日志转换依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38<!-- Logback -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.10</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.10</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.33</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.33</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.33</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.33</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>2.17.2</version>
</dependency>logback.xml 极简配置,注意位置是在资源目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<!-- jetty -->
<logger name="org.eclipse.jetty" level="ERROR"/>
<!-- struts2 -->
<logger name="com.opensymphony.xwork2" level="INFO"/>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
最终目录
本项目地址
Struts2.5.30,Hibernate5.6.8.Final,Spring5.3.19整合
https://hexo.terwer.space/post/struts-2-5-30-hibernate-5-6-8-final-spring-5-3-19-integration.html