利用WebApplicationInitializer配置SpringMVC取代web.xml

课设报告-超市收银系统 javaweb(附源代码) 超市收银系统由收银员输入顾客的会员卡卡号(若有卡),所购买的货号。从数据库中取出有关价格信息,在把这些信息返回给收银台,同时把收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。另外,对没有卡的消费不记录该顾客的消费情况扥个人信息,如果一个未持卡顾客一次购买满200元,可围棋发放一张会员卡,以后在该商场购物可享受9折优惠。 阅读详情

对于Spring MVC的DispatcherServlet配置方式,传统的是基于XML方式的,也就是官方说明的XML-based,如下:

复制代码
<servlet>
   <servlet-name>dispatcher</servlet-name>
   <servlet-class>
     org.springframework.web.servlet.DispatcherServlet
   </servlet-class>
   <init-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/spring/dispatcher-config.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
   <servlet-name>dispatcher</servlet-name>
   <url-pattern>/</url-pattern>
 </servlet-mapping>
复制代码

但是Spring文档建议我们采用code-based这种方式,当然,核心就是实现WebApplicationInitializer这个接口,查看这个接口的源码,里面也非常简单,只有一个方法,传入的参数是ServletContext:

void onStartup(ServletContext servletContext) throws ServletException;

下面是一个小例子:

1.项目结构:

2.MyWebAppInitializer.java

复制代码
public class MyWebAppInitializer implements WebApplicationInitializer{

    public void onStartup(ServletContext servletContext) throws ServletException {
        XmlWebApplicationContext appContext = new XmlWebApplicationContext();
        appContext.setConfigLocation("classpath:spring-mvc.xml");
        ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(appContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }
    
}
复制代码

3.UserController.java

复制代码
@Controller
public class UserController {
    
    @RequestMapping("/show")
    public String show(){
        return "show";
    } 
}
复制代码

4.spring-mvc.xml

复制代码
<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:cache="http://www.springframework.org/schema/cache"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
        http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.1.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">
        
    <context:component-scan base-package="com.aijava.springcode"/>
    
    <mvc:annotation-driven />
    
    <!--配置视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    
</beans>
复制代码

5.show.jsp

简单的一句打印:

<body>
    show page;
</body>

6.启动Tomcat后输入url后发现是会出现结果的,code-based是成功的!

 

手把手教你学simulink(36.1)--ACAC变换器场景示例:基于 Simulink 的矩阵变换器(Matrix Converter) 矩阵变换器(Matrix Converter, MC)是一种直接将交流电(AC)转换为不同频率和幅值的交流电的电力电子设备。与传统的基于直流环节的变频器不同,矩阵变换器不需要中间的直流环节,而是通过双向开关直接在输入和输出之间进行能量传递。这种结构使得矩阵变换器具有更高的效率、更小的体积和更好的动态响应。在本项目中,我们将使用 MATLAB/Simulink 来建模和仿真一个矩阵变换器,并分析其性能。Simulink 是一个强大的仿真工具,特别适合用于电力电子系统的建模和仿真。 阅读详情

相关推荐

第3章 信息技术服务(一)

对 第三章 《信息技术服务》中第一、二、三节 <内涵与外延、原理与组成、服务生命周期>进行总结、归纳

好好学习,天天向上的博客 733

org.springframework.web.WebApplicationInitializer

WebApplicationInitializer spring-web: org.springframework.web.WebApplicaitonInitializer public interface WebApplicationInitializer { /** * Configure the given {@link ServletContext} with any servlets, filters, listeners * context-params and attribute

凌晨12点,说出你的知心话 587

DBeaver连接IoTDB避坑指南:手动配置JDBC驱动的完整流程(附问题排查)

本文提供了在DBeaver中手动配置Apache IoTDB JDBC驱动的完整流程与避坑指南。详细解析了从驱动创建、库文件添加(关键是指向整个lib目录)到连接测试的每一步,并重点针对常见的ClassNotFoundException、连接拒绝等错误提供了深度排查方案,帮助用户高效建立图形化管理连接。

weixin_28327051的博客 396

找不到org.springframework.web.WebApplicationInitializer的类文件

1.问题 可能会出现的报错关键词: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError 2.原因 原因是缺少spring web启动依赖的原因。 web启动依赖WebApplicationInitializer这个文件。 之前因为调试代码, 删了maven的spring web的jar包, 然后启动项目的时候, 需要依赖这个, 所以报错, 只需要在pom.xml里面重新

weixin_43687353的博客 2981

Linux系统杀毒软件深度评测:8款主流工具对比(2025最新版)

本文针对Linux服务器/桌面环境,实测8款杀毒软件,涵盖开源免费、企业级防护、轻量级工具等类型,附保姆级安装教程和避坑指南,新手也能5分钟选对工具!

awei0916的专栏 1万+

通过JLink下载实现工控MCU批量烧录实战案例

利用JLink下载工具实现高效稳定的工控MCU批量烧录,提升产线效率。案例详细解析了脚本配置与自动化流程,突出jlink下载的可靠性和可扩展性,适用于大规模嵌入式部署场景。

weixin_30205153的博客 814

SpringBoot-WebApplicationinitializer启动过程及原理分析(ServletContainerInitializer加载及HandlesType源码分析)

Spring WebApplicationinitializer位于 Sring web下的 package org.springframework.web; 容器启动之后会调用该接口的on startup方法;代码如下 为什么容器启动之后会调用该接口的on startup 方法,主要是由于位于它同包下的另一个类 SpringServletContainerInitializer ...

z69183787的专栏 5135

Java 大视界 -- Java+Spark MLlib 构建智能推荐系统:协同过滤算法实战与优化(441)

Java+Spark MLlib构建智能推荐系统实战 本文详细介绍了基于Java和Spark MLlib构建协同过滤推荐系统的全流程实践方案。主要内容包括: 架构设计:采用离线批处理为主、近实时更新为辅的架构,包含数据采集层、处理层、模型层、推荐生成层、存储层和应用层六大模块,可支撑千万级用户推荐需求。 技术实现: 使用Spark MLlib的ALS算法进行协同过滤模型训练 提供数据清洗、模型训练、推荐生成等核心代码实现 采用MySQL存储推荐结果,支持批量插入和事务保障 生产级优化: 版本化模型存储规避覆

【青云交】华为云云享专家 | 阿里云开发者社区专家博主 技术圈个人影响力前 9 | 博客之星 TOP12 优快云 首位四榜(原力榜 / 作者周榜 / 领军人物 / 综合热榜)榜首,破平台纪录! 苏州地区全榜霸榜,感恩全网十多万粉丝同行! 2549

无法访问org.springframework.web.WebApplicationInitializer找不到org.springframework.web.WebApplicationInitia

Error:(12, 8) java: 无法访问org.springframework.web.WebApplicationInitializer 找不到org.springframework.web.WebApplicationInitializer的类文件 springboot启动报错,原因是缺少jar包 <dependency> <groupId>...

SJZYLC的专栏 9707

Kubernetes集群资源优化实战:Volcano调度器如何帮你省下30%GPU算力

本文详细介绍了如何通过Volcano调度器的Binpack策略优化Kubernetes集群中的GPU资源利用率,解决AI模型训练中的资源碎片化问题。通过实战配置和调优指南,帮助用户提升30%的GPU算力利用率,显著降低任务等待时间和硬件成本。

weixin_30832143的博客 507

STM32F429网络通信避坑指南:用CubeMX搞定LAN8720+LWIP+FreeRTOS(附完整代码)

本文详细介绍了STM32F429通过CubeMX配置LAN8720+LWIP+FreeRTOS实现网络通信的避坑指南,涵盖硬件连接、CubeMX配置、LWIP优化及调试技巧,提供完整代码和实战经验,帮助开发者高效解决以太网通信中的常见问题。

weixin_26873711的博客 145

java: 无法访问org.springframework.web.WebApplicationInitializer找不到org.springframework.web.WebApplication

java: 无法访问org.springframework.web.WebApplicationInitializer 找不到org.springframework.web.WebApplicationInitializer的类文件。在项目开发过程中出现找不到WebApplicationInitializer类,经过开发实践发现缺少依赖。-- 引入starter-web依赖-->报错得到解决,依赖类找到了!

康宁的博客 2537

《UDS协议从入门到精通》系列——图解0x34:请求下载

上传下载类服务之0x34-请求下载,图解请求+响应格式,直观易懂,快速上手!!

车载系统攻城狮 4931

从拆题到调试:嵌入式蓝莓采摘机器人的视觉与运动控制实战

农业机器人是嵌入式系统与机器视觉结合的典型场景,其核心难点在于用有限算力构建稳定可靠的“感知-决策-执行”闭环。以蓝莓采摘机器人为例,视觉系统通过HSV颜色空间转换、形态学滤波与连通域分析完成果实定位,配合圆形度筛选和成熟度评分,解决小果实簇生、颜色相近等识别难题;运动控制则借助状态机调度步进电机与真空吸附机构,实现“移动-下降-吸取-释放”的完整采摘动作。相比复杂深度学习模型,轻量化算法、坐标标定和容错设计在工程落地中更具价值,也更能体现产业级项目的实际需求。这一思路可广泛迁移至果蔬采摘、分拣机器人等智能

weixin_34026276的博客 381

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

WebApplicationInitializer

ServletContainerInitializer 深入了解WebApplicationInitializer是如何消除web.xml和springMVC的配置文件 https://www.nonelonely.com/article/1552475062917 servlet3.0 8.2.4 Shared libraries / runtimes pluggability 章节中规定:为了...

哇哈哈 2528

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

springMVC WebApplicationInitializer 替代web.xml 配置Servlet 之原理

Servlet 3.0之前 ,xml 配置 在过去搭建spring + springMCV ,首先第一步要做的是什么 ,就是要配置web.xml 文件 ,把springMVC 中的Servlet 加载到tomcat 。通过加载dispatcher 来启动整个spring容器。web.xml 如下 。 <servlet> <servlet-na...

didu4573的博客 692

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SpringMvc零配置,无Web.xml

public interface WebApplicationInitializer Interface to be implemented in Servlet 3.0+ environments in order to configure the ServletContext programmatically -- as opposed to (or possibly in conjunction with) the traditional web.xml-based approach. Impleme

weixin_45636416的博客 1109

SpringMVC的零配置WebApplicationInitializer

在SpringMVC框架中,WebApplicationInitializer是一个接口,用于在Servlet 3.0及以上版本的web应用程序中初始化Spring容器。通过实现WebApplicationInitializer接口,可以实现零配置的SpringMVC应用程序,即在web.xml文件中不需要配置任何Servlet或Filter。

weixin_52721608的博客 899

SpringMVC源码--WebApplicationInitializer(没有XML怎么在Web环境中启动Spring容器)

    一直有好奇Spring是怎样做到零XML完成Spring在Web容器中启动的,这篇文章主要介绍WebApplicationInitializer接口。作为本篇的主角, WebApplicationInitializer接口位于org.springframework.web包下。很简单,只有一个方法: public interface WebApplicationInitializer ...

小雨的光的博客 1713

SpringMVC不使用web.xml如何配置及源码解析

SpringMVC在很久之前就不推荐使用web.xml作为项目的配置文件了,更推荐使用java configuration的方式,因为web.xml配置实在是太繁琐了,今天我们就来演示下如何使用更简单的java configuration的方式来配置SpringMVC,总共分3步,非常简单。 第一步:添加入口类WebApplicationInitializer。 首先需要在项目中添加一个WebApplicationInitializer的实现类,一般是继承AbstractAnnotationConfigDi

若鱼的专栏 2051

Spring+SpringMVC无xml自动配置详解

一些啰嗦的话说在前: 梳理一下Spring+SpringMVC与SpringBoot: SpringBoot ≥ Spring+SpringMVC;SpringBoot囊括了Spring+SpringMVC的所有并内置Tomcat,提供统一配置。SpringBoot对开发者来说最直接的好处就是,不用自己写那些重复的xml配置,打war包,部署war到tomcat。 特别让刚开始接触Spring的开发人员最烦的就是,使用Spring+SpringMVC开发时,用IDEA各种配置Tomcat、编译打包,

博客 1454

Spring MVC零XML配置

Spring MVC

qq1929892209的博客 1228

纯注解版SpringMVC(无web.xml配置文件)项目创建

前言 为了学习SpringBoot框架,感受其“零配置”的魅力,我们先来感受一下纯注解版SpringMVC4项目的便捷,无需配置xml文件,依靠注解和配置类完成配置。本文以一个简单的项目为例,实现了Maven+SpringMVC注解版项目的搭建,为学习SpringBoot提供一个良好的过渡。 一、项目结构 二、Maven项目构建 1.pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns...

weixin_41923633的博客 2743

74.如何实现无XML零配置的SpringMVC

74.如何实现无XML零配置的SpringMVC

weixin_43860634的博客 882

【springboot 】web.xml去哪了 1 (SpringServletContainerInitializer接口、WebApplicationInitializer接口)

文章目录前言1:web.xml是怎么没的?1.1:Servlet3.0之前1.2:Servlet3.02. 项目实战3. springMVC如何集成servlet3.03.1 WebApplicationInitializer接口源码3.2 WebApplicationInitializer接口实战4. springboot如何集成spring MVC4.1:通过servlet3注解+@ServletComponentScan参考 相关文章: Spring MVC的web.xml配置详解(ContextLo

m0_45406092的博客 1132
上一篇: kaptcha验证码使用
下一篇: 面试问题mybatis #和$的区别
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值