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

手工木雕网站建设策划书计算机专业主要学什么内容

手工木雕网站建设策划书,计算机专业主要学什么内容,徐州做企业网站,wordpress 修改Spring MVC默认通过父子容器实现Web层与非Web组件的隔离。但在实际项目中,若未明确控制组件的扫描路径与加载规则,表现层的Controller、业务层的Service与数据层的Repository往往会被“一刀切”地扫描到同一上下文中。例如,业务层的Service被…

    Spring MVC默认通过父子容器实现Web层与非Web组件的隔离。但在实际项目中,若未明确控制组件的扫描路径与加载规则,表现层的Controller、业务层的Service与数据层的Repository往往会被“一刀切”地扫描到同一上下文中。例如,业务层的Service被意外注册到Spring MVC的Web上下文中,或数据源DataSource等基础设施Bean被表现层的组件直接依赖。这种混乱的加载方式不仅可能破坏分层架构的纯净性,还会导致事务管理失效、依赖注入冲突,甚至引发性能隐患。

加载控制

关键点:

在标准的 Spring MVC 应用中,存在 两个独立的上下文

上下文类型加载方式典型组件Bean 可见性
根上下文 (Root)ContextLoaderListenerService、Repository、DataSource对 Web 上下文可见
Web 上下文 (Servlet)DispatcherServletController、Interceptor、ViewResolver仅 Web 上下文内部可见
  • 父子关系:Web 上下文是根上下文的子上下文,因此 Web 上下文可以访问根上下文的 Bean,但根上下文无法访问 Web 上下文的 Bean。

  • 隔离性:若未正确分层,Web 上下文将无法获取业务层组件。

方案一:精确扫描

@Configuration
@ComponentScan("com.cc.controller")
public class SpringMvcConfig {
}

 方案二:过滤

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;@Configuration
@ComponentScan(value = "com.cc" ,     //明确扫描哪个包 value同等于basePackageexcludeFilters = @ComponentScan.Filter(    //表示排除哪些包type = FilterType.ANNOTATION,classes = Controller.class),includeFilters = @ComponentScan.Filter(    //表示精确扫描哪些包type = FilterType.ANNOTATION,classes = {Service.class, Repository.class})
)
public class SpringConfig {
}

测试:首先将spriongMvcConfig中的注解注释,仅让SpringConfig生效。写一个测试类看是否能获取UserController(在扫描SpringConfig时排除了Controller注解(见上面的代码),所以不能获取到):

import com.cc.config.SpringConfig;
import com.cc.controller.UserController;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App {public static void main(String[] args) {AnnotationConfigApplicationContext a = new AnnotationConfigApplicationContext(SpringConfig.class);System.out.println(a.getBean(UserController.class));}
}

    接着回到SpringConfig,将排除的部分注释,如果能获取到则说明该方法可行:

简化开发 

    回到servlet容器,在springmvc环境和pring加载不同的配置:

public class ServletConfig extends AbstractDispatcherServletInitializer {//加载springmvc容器配置@Overrideprotected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext app = new AnnotationConfigWebApplicationContext();app.register(SpringMvcConfig.class);return app;}//设置哪些请求归属springMVC处理@Overrideprotected String[] getServletMappings() {return new String[]{"/"};  //所有请求}//加载spring容器配置@Overrideprotected WebApplicationContext createRootApplicationContext() {AnnotationConfigWebApplicationContext app = new AnnotationConfigWebApplicationContext();app.register(SpringConfig.class);return app;}
}

    该方法可以从继承AbstractDispatcherServletInitializer换继承AbstractAnnotationConfigDispatcherServletInitializer:

public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}
}

http://www.dtcms.com/a/590170.html

相关文章:

  • 蒙古文政务网站群建设工作方案c 做网站性能怎么样
  • 海口专业网站建设最简单的wordpress主题
  • 厦门企业做网站怎样加入网站
  • 门户网站网站开发北京公司注册费用
  • 网站数据库制作seo高级优化技巧
  • 俄语网站建设注意事项thinkphp和wordpress区别
  • STM32F103学习笔记-16-RCC(第4节)-STM32 标准外设库函数命名规则总览(以stm32f10x_rcc.c/h为例)
  • 第7章 nestjs服务端开发:通用业务框架设计
  • 低价网站建设联系方式企业网站后端模板
  • 嵌入式Linux——“大扳手”与“小螺丝”:为什么不该用信号量(Semaphore)去模拟“完成量”(Completion)
  • 哪个网站教做ppt网站优化主要工作有那些内容
  • 都江堰做网站糖果网站建设目的
  • 网站怎么建设以及维护网站维护能自己做吗
  • 湖南网站建设制作陈锦良厦门建设局
  • 做网站有哪些好处现在建设网站落后了
  • 汉中专业网站建设价格梨树县交通建设网站
  • 代码随想录 Q85.摆动序列
  • ESP32连接ThingsCloud上传设备数据(智慧小灯)
  • 网站设计公司圣辉友联一级a做爰片免费网站性恔
  • 【基于one-loop-per-thread的高并发服务器】--- Server模块
  • 免费网站推广网站在线怎么做网页啊
  • 泰安手机网站建设做校园文化的网站
  • 自助建站网站程序源码dw做网站弊端
  • 新城区网站建设做网站.服务器怎么买
  • 【教学类-98-01】20251109“兔子头像”(小班主题《小兔乖乖》)
  • 上海电子门户网站建设数据怎么用editplus做网站
  • iBiz开源:iBizPLM BOM插件来了
  • 8.游戏逆向-pxxx-获取GObject
  • 建立网站 数据分析网站怎么做动效
  • 什么软件做网站链接安宁市建设厅网站