More
More
文章目录
  1. 项目结构
  2. 解决方案
  3. 展望
  4. 关于作者

Springboot之多模块jsp

  |  

项目结构

module1(如:封装好的一套组织机构、权限、角色、用户管理模块)包含jsp页面,module2(具体业务应用场景开发)依赖module1,结构图如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
parent
└── module1
│ │── ...
│ └── src/main/resources
│ │── mapper
│ │── public
│ │ ...
│ src/main/webapp
│ └── WEB-INF
│ └── jsp
└── module2
│ ...

解决方案

  • module1和module2的packaging均为jar。
  • src/main/resources下静态资源,及src/main/webapp/WEB-INF/jsp通过==resources==打包到META-INF目录下。这里的META-INF指打成jar后,jar里的META-INF。值得注意的是,如果您的mapper位于src/main/resources下,也需要打包出来哦。

    module1’s pom.xml的build标签内中添加resources:

    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
    <resources>
    <!-- 打包时将jsp文件拷贝到META-INF目录下-->
    <resource>
    <!-- 指定resources插件处理哪个目录下的资源文件 -->
    <directory>src/main/webapp</directory>
    <!-- 注意必须要放在此目录下才能被访问到-->
    <targetPath>META-INF/resources</targetPath>
    <includes>
    <include>**/**</include>
    </includes>
    </resource>
    <resource>
    <directory>src/main/resources/public</directory>
    <targetPath>META-INF/resources</targetPath>
    <includes>
    <include>**/**</include>
    </includes>
    </resource>
    <resource>
    <directory>src/main/resources</directory>
    <includes>
    <include>**/**</include>
    </includes>
    <filtering>false</filtering>
    </resource>
    </resources>
  • 普通项目直接在application.yml中配置即可,多模块项目无效。采用WebConfig.java:

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
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
/**
* 多模块的jsp访问,默认是src/main/webapp,但是多模块的目录只设置yml文件不行
* @return
*/
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setViewClass(org.springframework.web.servlet.view.JstlView.class);
// jsp目录
resolver.setPrefix("/WEB-INF/jsp/");
// 后缀
resolver.setSuffix(".jsp");
return resolver;
}
}

展望

  • 是否支持module1热部署;

关于作者

今年最后几个工作日了。看过日出也追过月光,忙碌一年的农民好像颗粒无收般难过。像极旧社会的大锅饭,干多干少结果好像并没有什么两样。所有的努力并不是当下就能体现的吧,就像乔布斯旁听美术课时大概也不知道会和苹果有什么关系。清风徐来,水波不兴。希望新的一年能有新的战场。

更多有意思的内容,欢迎访问笔者小站: rebey.cn

打赏
手机扫一扫,支持CHE~