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

创建一个网站流程图wordpress页面增加目录

创建一个网站流程图,wordpress页面增加目录,哈尔滨软件开发公司排名,盱眙有做公司网站的吗在实际开发中,SpringMVC 负责扫描和加载 Controller 层的 Bean 对象,而业务层和数据层等其他模块的 Bean 则由 Spring 框架负责扫描和加载。那么,如何控制 Spring 仅加载除了 Controller 层之外的其他 Bean 呢?为了解决这个问题&a…

在实际开发中,SpringMVC 负责扫描和加载 Controller 层的 Bean 对象,而业务层和数据层等其他模块的 Bean 则由 Spring 框架负责扫描和加载。那么,如何控制 Spring 仅加载除了 Controller 层之外的其他 Bean 呢?为了解决这个问题,通常可以采取以下两种方案,来避免 Spring 错误地加载 SpringMVC 的 Bean:

  • 直接指定:在 Spring 的配置中精确设定扫描范围,只加载特定的包,例如 service 包和 dao 包。
  • 过滤排除:将 Spring 的扫描范围设定为 com.it(假设 groupId 为 com.it),并排除 controller 包内的 Bean。

当然,在实际开发中,有时也会选择不区分 Spring 和 SpringMVC 的环境,将它们加载到同一个环境中。这里创建一个入门版的 SpringMVC 项目进行演示,创建过程可以参考 SpringMVC 快速入门。假设,现在的 SpringMVC 配置类和启动配置类如下:

@Configuration
@ComponentScan("com.it.controller")
public class SpringMvcConfig {
}
public class InitConfig extends AbstractDispatcherServletInitializer {// 用于加载 SpringMVC 容器配置@Overrideprotected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();ctx.register(SpringMvcConfig.class);return ctx;}// 设置哪些请求归属 SpringMVC 处理@Overrideprotected String[] getServletMappings() {// 设置所有的请求归属 SpringMVC 处理return new String[]{"/"};}// 加载 Spring 容器配置@Overrideprotected WebApplicationContext createRootApplicationContext() {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();ctx.register(SpringConfig.class);return ctx;}
}

方式 1:直接指定

在 Spring 配置类中,通过 @ComponentScan 直接指定多个待扫描模块:

@Configuration
@ComponentScan({"com.it.service", "com.it.dao"})
public class SpringConfig {
}

方式 2:过滤排除

在 Spring 配置类中,通过 @ComponentScan 排除不扫描模块:

@Configuration
@ComponentScan(value = "com.it",excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)
)
public class SpringConfig {
}

这里按照注解类型排除不需要扫描的模块,说明一下:@ComponentScan 存在两个重要的属性:

  • excludeFilters:排除扫描路径中加载的 Bean,需要指定类别(type)与具体项(classes)
  • includeFilters:加载指定的 Bean,需要指定类别(type)与具体项(classes)

测试

在 com.it 下创建一个 App 类,观察运行后是否能获取到 Controller 层 Bean:

public class App {public static void main(String[] args) {AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);System.out.println(ctx.getBean(UserController.class));}
}

测试前,需要将 SpringMvcConfig 类上的 @Configuration 注解先注释掉,因为 SpringConfig 在设置扫描 com.it 包时,如果包中某个类添加了 @Configuration 注解,那么这个类被扫描的同时,该类 @ComponentScan 指定的 com.it.controller 也会被扫描,这样会影响 Bean 加载控制的测试效果。

优化

在实际开发中,可以优化 InitConfig 类中加载 Spring 和 SpringMVC 容器配置的过程。通过继承 AbstractDispatcherServletInitializer 类的子类,使得配置过程更加简洁:

public class InitConfig 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.yayakq.cn/news/294254/

相关文章:

  • 容桂网站制作动态新浪云部署wordpress
  • 重庆中环建设有限公司网站低代码开发软件
  • 1个人做多网站负责人合肥网站制作QQ
  • 网站做gzip压缩关于公司的网站设计
  • 网站建设需要学习课程为什么网站生成后不显示
  • 网站建设内部流程图网站建设技术开发
  • 网站建设mp4背景做品牌推广网站需要多少钱
  • 什么软件可以攻击网站wordpress微信分享图片不显示图片
  • 网站规划的要素不包括开源的 二次网站开发
  • 怎么给网站做aap如何制作游戏?
  • 制作介绍的网站网站建设表格
  • 旅游网站的网页设计素材wordpress修复
  • 网页网站设计培训班郑州网站+建设
  • 网站推广优化外包公司哪家好福州seo博客
  • 国家为什么把安阳分了手机端网站如何优化
  • 国外网站搜索引擎优化方案找i满洲做卖房广告不收费的网站
  • 网站开发公司凭证建设银行开通网银网站
  • 学而思编程网站精准客源 获客
  • 网站加黑链酒店 企业网站建设的思路
  • 顶部固定网站模板建筑培训学校
  • 注册百度网站怎么弄网站模板内容怎么添加图片不显示
  • 建设工程招标专业网站实际讲解做钓鱼网站
  • 建设直播网站需要多少钱更改wordpress语言设置
  • 手机端网站提交表单验证代码seo推广思路
  • 有哪些在线做图的网站去国外做非法网站
  • 可以挣钱的网站北京爱空间装修公司
  • 个人网站建设课程介绍网盘搜索网站如何做的
  • 企业网站建设策划书网站建设分析魅族
  • 天猫网站企业网站专业性诊断分析wordpress加上vip解析
  • 小程序可以做网站吗做贷款网站犯法吗