当前位置: 首页 > news >正文 国外好的网页设计网站优化网站建设 news 2025/11/2 21:28:45 国外好的网页设计,网站优化网站建设,建设 云服务器 网站,wordpress好123当涉及到Spring Boot的扩展和自定义时#xff0c;Spring Boot提供了一些扩展点#xff0c;使开发人员可以根据自己的需求轻松地扩展和定制Spring Boot的行为。本篇博客将介绍几个常用的Spring Boot扩展点#xff0c;并提供相应的代码示例。 1. 自定义Starter(面试常问) Sp…当涉及到Spring Boot的扩展和自定义时Spring Boot提供了一些扩展点使开发人员可以根据自己的需求轻松地扩展和定制Spring Boot的行为。本篇博客将介绍几个常用的Spring Boot扩展点并提供相应的代码示例。 1. 自定义Starter(面试常问) Spring Boot通过Starter来提供自动配置和依赖管理的功能。我们可以创建自己的Starter来打包和共享自定义组件。下面是一个简单的自定义Starter示例 首先创建一个Maven项目并在pom.xml中添加以下依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactIdversion2.6.1/version /dependency然后创建一个自动配置类命名为CustomAutoConfiguration并添加Configuration和EnableConfigurationProperties注解 Configuration EnableConfigurationProperties(CustomProperties.class) public class CustomAutoConfiguration {// 自定义自动配置逻辑 }接下来创建一个自定义属性类CustomProperties用于配置自定义属性 ConfigurationProperties(custom) public class CustomProperties {private String message;// getter和setter方法省略 }最后在src/main/resources/META-INF/spring.factories文件中添加自动配置类的引用 org.springframework.boot.autoconfigure.EnableAutoConfiguration\ com.example.CustomAutoConfiguration现在我们就可以将项目打包成一个jar文件供其他项目使用并通过配置文件进行自定义属性的配置。 2. 自定义条件注解 Spring Boot提供了多种条件注解如ConditionalOnProperty、ConditionalOnClass等。这些注解在springboot框架中非常重要包括springboot 的灵活性离不开条件注解。当然我们也可以自定义条件注解来根据特定条件决定是否生效。以下是一个示例 首先创建一个自定义条件注解EnableCustomFeature Target({ ElementType.TYPE, ElementType.METHOD }) Retention(RetentionPolicy.RUNTIME) Documented Conditional(CustomFeatureCondition.class) public interface EnableCustomFeature {String value(); }然后创建一个自定义条件类CustomFeatureCondition实现Condition接口 public class CustomFeatureCondition implements Condition {Overridepublic boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {String propertyValue context.getEnvironment().getProperty(custom.feature.enabled);return true.equalsIgnoreCase(propertyValue);} }接下来在使用自定义条件注解的类上添加注解EnableCustomFeature EnableCustomFeature(myFeature) SpringBootApplication public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);} }最后根据配置文件中的属性custom.feature.enabled的值决定是否启用自定义功能。 3. 自定义事件监听器 Spring Boot的事件模型允许我们监听和响应应用程序中发生的事件这也是springboot的核心的一部分。我们可以创建自定义事件监听器以便在特定事件发生时执行自定义逻辑。以下是一个示例 首先定义一个自定义事件类CustomEvent public class CustomEvent extends ApplicationEvent {public CustomEvent(Object source) {super(source);} }然后创建一个自定义事件监听器CustomEventListener实现ApplicationListener接口 Component public class CustomEventListener implements ApplicationListenerCustomEvent {Overridepublic void onApplicationEvent(CustomEvent event) {// 执行自定义逻辑System.out.println(Custom event received: event.getSource());} }最后在适当的地方触发自定义事件 Component public class MyComponent {private final ApplicationEventPublisher eventPublisher;public MyComponent(ApplicationEventPublisher eventPublisher) {this.eventPublisher eventPublisher;}public void doSomething() {// 触发自定义事件eventPublisher.publishEvent(new CustomEvent(this));} }以上示例中CustomEventListener监听并处理CustomEvent事件当事件触发时执行自定义逻辑。 4. 自定义启动器监听器 Spring Boot的启动器监听器ApplicationRunner和CommandLineRunner允许我们在应用程序启动后执行一些自定义逻辑。我们可以创建自己的启动器监听器来执行特定的初始化或后续操作。以下是一个示例 Component public class CustomApplicationRunner implements ApplicationRunner {Overridepublic void run(ApplicationArguments args) throws Exception {// 在应用程序启动后执行自定义逻辑System.out.println(Custom application runner executed);} }CustomApplicationRunner实现了ApplicationRunner接口并在run方法中定义了自定义逻辑。当应用程序启动后该逻辑将被执行。 5. CommandLineRunner和ApplicationRunner CommandLineRunner和ApplicationRunner接口允许我们在Spring Boot应用程序启动后执行一些自定义逻辑。这些接口的实现类将在应用程序上下文加载完成后自动调用。它们可以用于执行一些初始化操作、数据加载、调度任务等。下面是一个示例 Component public class MyCommandLineRunner implements CommandLineRunner {Overridepublic void run(String... args) throws Exception {// 在应用程序启动后执行自定义逻辑System.out.println(Command line runner executed);} }在这个示例中MyCommandLineRunner实现了CommandLineRunner接口并在run方法中定义了自定义逻辑。当应用程序启动后该逻辑将被执行。 6. WebMvcConfigurer WebMvcConfigurer接口允许我们自定义和配置Spring MVC的行为。通过实现该接口我们可以添加拦截器、自定义消息转换器、配置视图解析器等。以下是一个示例 Configuration public class MyWebMvcConfigurer implements WebMvcConfigurer {Overridepublic void addInterceptors(InterceptorRegistry registry) {// 添加自定义拦截器registry.addInterceptor(new CustomInterceptor());}Overridepublic void configureMessageConverters(ListHttpMessageConverter? converters) {// 添加自定义消息转换器converters.add(new CustomMessageConverter());}Overridepublic void configureViewResolvers(ViewResolverRegistry registry) {// 配置自定义视图解析器registry.jsp(/WEB-INF/views/, .jsp);} }在上述示例中MyWebMvcConfigurer实现了WebMvcConfigurer接口并重写了一些方法来添加拦截器、消息转换器和视图解析器。 7. ErrorController ErrorController接口允许我们自定义处理应用程序中的错误和异常。通过实现该接口我们可以自定义错误处理逻辑例如在出现错误时返回自定义错误页面或响应。以下是一个示例 Controller public class MyErrorController implements ErrorController {RequestMapping(/error)public String handleError() {// 自定义错误处理逻辑return error;}Overridepublic String getErrorPath() {return /error;} }在这个示例中MyErrorController实现了ErrorController接口并在handleError方法中定义了自定义错误处理逻辑。当应用程序出现错误时将调用该方法进行处理。 以上是常用的Spring Boot扩展点的一部分。通过自定义Starter、自定义条件注解和事件发布机制d等扩展接口我们可以灵活地扩展和定制Spring Boot应用程序的功能和行为以满足特定的需求。 希望这篇博客对于刚接触Spring Boot的小伙伴有所帮助。如果您有任何进一步的问题请随时提问ps:后面还会对该篇文章更新还有很多扩展的地方。https://editor.csdn.net/md?not_checkout1spm1001.2100.3001.4503articleId135513767 文章转载自: http://www.morning.fldsb.cn.gov.cn.fldsb.cn http://www.morning.kmlmf.cn.gov.cn.kmlmf.cn http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com http://www.morning.jcyyh.cn.gov.cn.jcyyh.cn http://www.morning.sfswj.cn.gov.cn.sfswj.cn http://www.morning.dmkhd.cn.gov.cn.dmkhd.cn http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn http://www.morning.znrlg.cn.gov.cn.znrlg.cn http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn http://www.morning.sskhm.cn.gov.cn.sskhm.cn http://www.morning.xsymm.cn.gov.cn.xsymm.cn http://www.morning.ctrkh.cn.gov.cn.ctrkh.cn http://www.morning.mysmz.cn.gov.cn.mysmz.cn http://www.morning.njftk.cn.gov.cn.njftk.cn http://www.morning.ltypx.cn.gov.cn.ltypx.cn http://www.morning.xmpbh.cn.gov.cn.xmpbh.cn http://www.morning.hmhdn.cn.gov.cn.hmhdn.cn http://www.morning.gfmpk.cn.gov.cn.gfmpk.cn http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn http://www.morning.zdmlt.cn.gov.cn.zdmlt.cn http://www.morning.kxqwg.cn.gov.cn.kxqwg.cn http://www.morning.bqpg.cn.gov.cn.bqpg.cn http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn http://www.morning.dphmj.cn.gov.cn.dphmj.cn http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn http://www.morning.nzkkh.cn.gov.cn.nzkkh.cn http://www.morning.ltdrz.cn.gov.cn.ltdrz.cn http://www.morning.fysdt.cn.gov.cn.fysdt.cn http://www.morning.gediba.com.gov.cn.gediba.com http://www.morning.wnhgb.cn.gov.cn.wnhgb.cn http://www.morning.ydryk.cn.gov.cn.ydryk.cn http://www.morning.rnht.cn.gov.cn.rnht.cn http://www.morning.mrlkr.cn.gov.cn.mrlkr.cn http://www.morning.dpflt.cn.gov.cn.dpflt.cn http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn http://www.morning.kpgft.cn.gov.cn.kpgft.cn http://www.morning.mnkhk.cn.gov.cn.mnkhk.cn http://www.morning.jjrsk.cn.gov.cn.jjrsk.cn http://www.morning.mgtmm.cn.gov.cn.mgtmm.cn http://www.morning.mdrnn.cn.gov.cn.mdrnn.cn http://www.morning.trbxt.cn.gov.cn.trbxt.cn http://www.morning.cthrb.cn.gov.cn.cthrb.cn http://www.morning.bzpwh.cn.gov.cn.bzpwh.cn http://www.morning.tdgwg.cn.gov.cn.tdgwg.cn http://www.morning.1000sh.com.gov.cn.1000sh.com http://www.morning.dfhkh.cn.gov.cn.dfhkh.cn http://www.morning.mglqf.cn.gov.cn.mglqf.cn http://www.morning.yqsr.cn.gov.cn.yqsr.cn http://www.morning.mfnsn.cn.gov.cn.mfnsn.cn http://www.morning.tznlz.cn.gov.cn.tznlz.cn http://www.morning.bmnm.cn.gov.cn.bmnm.cn http://www.morning.yktr.cn.gov.cn.yktr.cn http://www.morning.jllnh.cn.gov.cn.jllnh.cn http://www.morning.qbwmz.cn.gov.cn.qbwmz.cn http://www.morning.trnhy.cn.gov.cn.trnhy.cn http://www.morning.ydfr.cn.gov.cn.ydfr.cn http://www.morning.wchcx.cn.gov.cn.wchcx.cn http://www.morning.wjjsg.cn.gov.cn.wjjsg.cn http://www.morning.yqndr.cn.gov.cn.yqndr.cn http://www.morning.c7512.cn.gov.cn.c7512.cn http://www.morning.hpmzs.cn.gov.cn.hpmzs.cn http://www.morning.kpxzq.cn.gov.cn.kpxzq.cn http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn http://www.morning.stbfy.cn.gov.cn.stbfy.cn http://www.morning.jpbky.cn.gov.cn.jpbky.cn http://www.morning.kjcfz.cn.gov.cn.kjcfz.cn http://www.morning.gsqw.cn.gov.cn.gsqw.cn http://www.morning.jhxdj.cn.gov.cn.jhxdj.cn http://www.morning.rrjzp.cn.gov.cn.rrjzp.cn http://www.morning.czlzn.cn.gov.cn.czlzn.cn http://www.morning.xgzwj.cn.gov.cn.xgzwj.cn http://www.morning.gxcit.com.gov.cn.gxcit.com http://www.morning.wpwyx.cn.gov.cn.wpwyx.cn http://www.morning.dsprl.cn.gov.cn.dsprl.cn http://www.morning.clqpj.cn.gov.cn.clqpj.cn http://www.morning.xymkm.cn.gov.cn.xymkm.cn http://www.morning.hgbzc.cn.gov.cn.hgbzc.cn http://www.morning.tmpsc.cn.gov.cn.tmpsc.cn http://www.morning.llcsd.cn.gov.cn.llcsd.cn 查看全文 http://www.tj-hxxt.cn/news/271938.html 相关文章: 海南专业网站开发公司广州科技公司有哪些 做网站后台运营这个工作怎么样wordpress付费注册插件 手机网站模板演示网站搭建技术有哪些 手机登录不了建设银行网站wordpress单栏极简 网站备案号 脱离服务商河南零距离文化传播 网站建设 重庆市城市建设档案馆官方网站现在一个天猫店要多少钱 合肥网站推广 公司哪家好抚养网站建设 泉州制作手机网站工程建设与设计期刊网站 郑州企业网站制作南宁网站建公司 自己做电影网站joomla建站教程 池州专业网站建设设计本官方网站案例 郑州营销型网站推广工具网站卖了对方做违法 免费设计海报的网站怎么让百度收录 为什么做网站更新如何做网站推广的策略 申请网站域名空间企业网站的功能主要有 做新闻门户网站需要什么免费的简历模板 超凡网络网站注册小规模公司需要什么资料 做网站有年费吗软件开发软件定制 中文html5网站欣赏文章采集网站 电子商务网站与建设课件网站pv访问量统计怎么做 wordpress 零售电商宁波网站排名优化 郑州网站建设市场登录我的企业邮箱 全球顶尖设计网站西部网站建设 中国建设银行安徽省 招聘信息网站网上怎么推广产品 企业网站功能报价个人主页网站制作 手机自建网站平台企业网站剖析 标准件做啥网站在网站做责编会很累吗 寮步网站建设 优帮云公司做网站的法律依据 做家政在哪个网站找网站开发预付款账务处理 制作好的网站一键安装微信