‘壹’ SpringBoot Web项目依赖分析
在上篇中,我们得到如下的pom.xml
看看其核心类容:
按住ctrl并点击parent中spring-boot-stater-parent节点,可以看到
spring-boot-stater-parent有一个parent spring-boot-dependencies
根据名字分析,是spring-boot项目依赖的
继续点击spring-boot-dependencies
可以看到其在properties中配置了大量的依赖版本
我当前这个版本(2.2.3.RELEASE)在properties中共配置了203个依赖的版本
properties下面 dependencyManagement节点中,配置了依赖组建的版本:
在项目的pom.xml中查看依赖树:
可以看到springboot-starter-web添加了tomcat,web,webmvc,spring-core,spring-context等依赖
这也就是为什么我们可以直接通过DemoApplication.main来运行,而不需要配置外部servlet容器的原因,同时,通过这个starter-web就已经将web相关的依赖都整合进来了。
springboot中提供了很多starter,比如
‘贰’ spring配置文件在web.xml中怎么配的
<context-param>标签的意思当然是初始化启动了.
classpath:applicationContext.xml的意思就是从classpath:路径中找到SPRING的配置文件并加载上..classpath:也可以改成/WEB-INF/.就看配置文件放哪了
监听器会帮你新建BeanFactory接口的实例.然后就可以大胆的用IOC了.SPRING中配置的依赖关系都会生效.
‘叁’ Spring boot 中 WebMvcConfigurationSupport 详解
新写了一个简单项目,里面需要提供一个接口给第三方访问,第三方要求的接口响应时间为3s,因此需要对接口进行时间的记录 以下是具体的使用。
实现HandlerInterceptor这个接口
以上两步完成,即完成拦截器的注册。该拦截器会对 /sell_record/** 请求路径进行拦截。
controller测试类
一个简单的拦截器就写完了~
其中用的比较多的是一下三个接口:
静态资源处理
非常重要的提示: Springboot 中只能有一个 WebMvcConfigurationSupport 配置类是真正起作用的,对于这个问题,其实可以通过 implements WebMvcConfigurer 来解决,多个不同的类实现这个接口后的配置都可以正常运行。
具体可参考 [ Spring Boot中只能有一个WebMvcConfigurationSupport配置类
‘肆’ 如何修改基于Spring Boot开发的Web应用的端口
web服务器的端口在Spring Boot中是以server.port这个属性存在的,以下方法都可以推而广之到任何属性:
修改Spring Boot应用类路径上的application.properties文件,设置server.port=1234,1234就是你想要的端口。
在启动Spring Boot应用的命令行参数(也就是JVM参数中)加入-Dserver.port=1234
利用@Configuration配置Tomcat容器:
- @Configurationpublic class ServletConfig { @Bean
- public containerCustomizer() { return (container -> {
- container.setPort(1234);
- });
- }
- }
- System.getProperties().put( "server.port", 1234 );
- SpringApplication.run(App.class, args);
也可以利用Java的System Properties来设置:
总之Spring Boot有一个异常强大和灵活的配置系统,请参考官方文档了解更多。
‘伍’ “spring boot”框架的“web.xml”文件怎么配置
首先我们先配置welcomefile-list
我们先声明一个类继承WebMvcConfigurerAdapter重写如下方法即可
注解不能忘
@Configuration@EnableWebMvc@ComponentScan(basePackages =
@Overridepublic void addViewControllers(ViewControllerRegistry registry){
registry.addViewController("/").setViewName("forward:/login.html");}
配置controller类返回至指定目录,需要重写如下方法
@Beanpublic ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/view/"); resolver.setSuffix(".jsp"); resolver.(true); return resolver;}
我们把另一个类用于配置监听事件编码
Configurationpublic class WebInitializer extends {
getRootConfigClasses 用于配置最先执行的一些配置文件,如RootConfig.java 比如自定义的filter
getServletConfigClasses 这个文件是用于配置welcomefilelist 前置目录+后缀 error-page等
‘陆’ JAVA maven创建web项目,把Spring框架配置文件放在src/main/resources中读取不到配置文件
classpath:是从类路径里查找配置文件,也就是/WEB-INF/classes目录下找SpringMVC-servlet.xml。
你写了classpath了,不会从web-info下找,而是去web-inf/classes下面找,所以找不到。