当前位置: 首页 > wzjs >正文

陕西咸阳做网站的公司有哪些网站开发 8g和16g

陕西咸阳做网站的公司有哪些,网站开发 8g和16g,手机网站建设一般多少钱,进出口贸易公司怎么找客户ServletComponentScan 注解是 Spring Boot 提供的一个非常方便的注解,它的主要作用是启用对 Servlet 3.0 规范中定义的标准 Servlet 组件(如 Servlets, Filters, Listeners)的扫描和自动注册。 具体来说,当你使用这个注解时&…

@ServletComponentScan 注解是 Spring Boot 提供的一个非常方便的注解,它的主要作用是启用对 Servlet 3.0+ 规范中定义的标准 Servlet 组件(如 Servlets, Filters, Listeners)的扫描和自动注册

具体来说,当你使用这个注解时,Spring Boot 会自动扫描指定包(或默认包)下带有以下标准注解的类,并将它们注册到嵌入式的 Servlet 容器中(如 Tomcat, Jetty, Undertow):

  1. @WebServlet: 用于定义一个 Servlet。
  2. @WebFilter: 用于定义一个 Filter。
  3. @WebListener: 用于定义一个 Listener (如 ServletContextListener, HttpSessionListener, ServletRequestListener 等)。

如何使用?

通常,你会将 @ServletComponentScan 注解添加到你的主 Spring Boot 应用类上(即带有 @SpringBootApplication 注解的类):

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;@SpringBootApplication
@ServletComponentScan // 启用 Servlet 组件扫描
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

然后,你就可以在你的项目中像下面这样定义 Servlet、Filter 或 Listener:

示例:定义一个 Servlet

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet(urlPatterns = "/myServlet", name = "myCustomServlet")
public class MyServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().write("Hello from MyServlet!");}
}

示例:定义一个 Filter

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;@WebFilter(urlPatterns = "/*", filterName = "myCustomFilter")
public class MyFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {System.out.println("MyFilter: Before processing request");chain.doFilter(request, response);System.out.println("MyFilter: After processing request");}// init() 和 destroy() 方法可以按需实现
}

示例:定义一个 Listener

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;@WebListener
public class MyContextListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {System.out.println("MyContextListener: ServletContext initialized!");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {System.out.println("MyContextListener: ServletContext destroyed!");}
}

@ServletComponentScan 的属性:

  • valuebasePackages: 字符串数组,用于指定需要扫描的包。例如:@ServletComponentScan(basePackages = "com.example.webcomponents")
  • basePackageClasses: Class 类型数组,用于指定一些类,Spring Boot 会扫描这些类所在的包。例如:@ServletComponentScan(basePackageClasses = MyServlet.class)

如果这两个属性都没有指定,Spring Boot 会默认扫描添加了 @ServletComponentScan 注解的类所在的包及其子包

为什么需要 @ServletComponentScan

  1. 简化配置:在没有 Spring Boot 或这个注解之前,你需要在 web.xml 文件中显式配置 Servlet、Filter 和 Listener,或者使用 Servlet 3.0+ 的编程式注册方式(通过 ServletContext)。@ServletComponentScan 使得使用注解驱动的方式更加便捷。
  2. 与 Spring Boot 集成:虽然这些是标准的 Servlet 组件,但 @ServletComponentScan 确保它们能被 Spring Boot 的自动配置机制正确识别和集成到嵌入式 Servlet 容器中。
  3. 依赖注入:Spring Boot 也会尝试对通过 @ServletComponentScan 扫描到的组件进行依赖注入(例如,你可以在 Filter 或 Servlet 中 @Autowired Spring管理的 Bean)。

与通过 Spring Bean 注册的区别:

你也可以通过 Spring 的 ServletRegistrationBean, FilterRegistrationBean, ServletListenerRegistrationBean 等 Bean 来注册 Servlet 组件。这种方式的好处是你可以更细致地控制它们的属性(如顺序、初始化参数等),并且它们本身就是 Spring Bean,完全由 Spring 管理。

使用 @ServletComponentScan 注册的组件,它们主要是由 Servlet 容器直接管理,Spring Boot 提供了桥梁让容器能够发现它们,并辅助进行依赖注入。

总结:

@ServletComponentScan 是 Spring Boot 中用于自动发现和注册使用标准 @WebServlet, @WebFilter, @WebListener 注解声明的 Servlet、Filter 和 Listener 的便捷方式。它简化了配置,使得我们在开发过程中可以专注于业务逻辑,而不是繁琐的 XML 配置或编程式注册。


文章转载自:

http://g3xCQXH8.gnbtp.cn
http://EsUoXUCn.gnbtp.cn
http://1v9a9zBT.gnbtp.cn
http://bYc4E6FM.gnbtp.cn
http://bQW08FAP.gnbtp.cn
http://bx7h5OV5.gnbtp.cn
http://aFFK60jW.gnbtp.cn
http://7cqOvfIM.gnbtp.cn
http://u8dFZCMl.gnbtp.cn
http://wM1wNCN5.gnbtp.cn
http://MaS9r565.gnbtp.cn
http://fnYTTNjr.gnbtp.cn
http://u6fl96y1.gnbtp.cn
http://tl9CAg39.gnbtp.cn
http://9mwMs2yO.gnbtp.cn
http://z88zoHnK.gnbtp.cn
http://5hKJp50R.gnbtp.cn
http://lKfs3nZz.gnbtp.cn
http://nEynvSgg.gnbtp.cn
http://a5oN9RIF.gnbtp.cn
http://5Y0nIkyS.gnbtp.cn
http://UhpcyDvV.gnbtp.cn
http://Schbc2Iz.gnbtp.cn
http://BuXZChu2.gnbtp.cn
http://a2SIaiDb.gnbtp.cn
http://OjsRaJCu.gnbtp.cn
http://EuicPWHc.gnbtp.cn
http://fUL3V9ZR.gnbtp.cn
http://cRYsNhI1.gnbtp.cn
http://Q6b0hdrE.gnbtp.cn
http://www.dtcms.com/wzjs/657452.html

相关文章:

  • 西安网站开发公司地址网站建设 自动生成
  • 红色ppt模板免费下载网站中国建设集团有限责任公司
  • 外国人学做中国菜 网站成都哪些公司做网站好
  • 温岭 网站建设如何快速做网站排名
  • js做网站吕梁市网站建设公司
  • 网站技术方案说明推广下载app赚钱
  • 劳务输送网站建设方案怎么用手机做网站编辑
  • 网站信息员队伍建设wordpress如何编辑页面代码
  • 宠物网站建设方案wordpress投稿
  • 中英文双语网站洛阳新光建站系统
  • 石家庄做网站最好的公司哪家好网站建设与管理需要什么软件
  • 内蒙古建设工程质监站网站wordpress模板图片不显示
  • 保定 网站制作 招聘互联网技术的特点
  • 了解网站建设代码优化
  • 哈尔滨有多少家网站建设公司西安app开发
  • ps做产品的网站宠物医院网站开发
  • ps做网站分辨率自适应计算机专业里面哪个专业最好
  • 南宁3及分销网站制作wordpress 留言 顶
  • 甘肃省建设厅网站资质升级公示手机推广app
  • flashfxp 上传网站怎么做电影网站不违法
  • 建设网站平台哪里最好wordpress前端工具箱
  • 北大青鸟网站开发网站服务器租赁费高吗
  • 庆阳手机网站设计机械加工图纸标注符号大全
  • 织梦零基础做网站私人承接软件开发定制
  • 武昌做网站wordpress 新页面打开空白页
  • 北京做网站商标的公司wordpress全图水印
  • 云南微网站制作网站建设行业发展状况
  • 星大建设集团招聘网站wordpress加代码广告
  • 深圳建筑业网站建设营销类网站建营销类网站建设
  • wordpress漫画站主题页面设计风格有哪几种