我正在遵循一个关于Spring MVC的教程,即使在阅读了Spring API文档后,我也无法理解@ComponentScan
注释,因此以下是示例代码:
配置视图控制器
package com.apress.prospringmvc.bookstore.web.config;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
// Other imports ommitted
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "com.apress.prospringmvc.bookstore.web" })
public class WebMvcContextConfiguration extends WebMvcConfigurerAdapter {
// Other methods ommitted
@Override
public void addViewControllers(final ViewControllerRegistry registry) {
registry.addViewController("/index.htm").setViewName("index");
}
}
基于注释的控制器
package com.apress.prospringmvc.bookstore.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class IndexController {
@RequestMapping(value = "/index.htm")
public ModelAndView indexPage() {
return new ModelAndView("index");
}
}
我的问题是,对于视图控制器,通过添加@Configuration
和@ComponentScan(basePackages={“com.apress.prospringmvc.bookstore.web})
,在后台会做什么?软件包com。按一下。prospringmvc。书店web
为这些视图控制器提供了什么?
简单地说,@ComponentScan
告诉Spring哪些包中有应该由Spring管理的注释类。因此,例如,如果您有一个用@Controller
注释的类,它在一个包中,没有被Spring扫描,那么您将无法将其用作Spring控制器。
用@Configance
注释的类是一种使用注释而不是XML文件(称为Java配置)来配置Spring的新方法。Spring需要知道哪些包包含Spring bean,否则您必须单独注册每个bean。这就是@ComponentScan
的用途。
在您的示例中,您告诉Spring这个包com。按一下。prospringmvc。书店web
包含应该由Spring处理的类。Spring然后找到一个用@Controller
注释的类,并对其进行处理,这将导致所有请求都到达/index。htm
被控制器截获。
当请求被拦截时,Spring需要知道向调用方发送什么响应。由于您返回了ModelAndView
的实例,它将尝试在您的项目中找到一个名为index
的视图(JSP页面)(详细信息取决于配置的视图解析器),并将其呈现给用户。
如果@Controller
注释不存在,或者该包没有被Spring扫描,所有这些都将是不可能的。
我正在使用spring batch,在执行批处理作业时,我得到了一个InvalidIsolationLevelException。当我使用MapJobRepositoryFactoryBean时,该作业可以工作,但我需要在数据库中生成batch_*表。 应用程序已经设置了事务管理器。
我是Spring Boot的新手,我看到了Spring Boot。上面写着: 可执行JAR和Java Java不提供任何加载嵌套jar文件的标准方法(即jar文件本身包含在jar中)。如果您希望分发一个自包含的应用程序,这可能会有问题。 为了解决这个问题,许多开发人员使用“优步”罐。优步罐只是简单地将所有罐中的所有类打包到一个存档中。这种方法的问题是很难看到你在应用程序中实际使用的库。如果在多个罐
理解用户以及帮助你的boss理解用户是你的责任。因为用户没有像你一样密切地与你的产品的制造产生联系,他们的表现有点不同: 用户通常会做出简短的判断 用户有他们自己的工作,他们主要会思考你的产品中小的改进,而非大的改进 用户看不到你的产品的整个用户画像 你的责任是找出他们真实需要的东西,而非他们说他们需要的东西,然而,更好的是,在你开始前,建议他们,让他们同意你想做的,就是他们真实想要的东西,但他们
本文向大家介绍你如何理解 Spring Boot 配置加载顺序?相关面试题,主要包含被问及你如何理解 Spring Boot 配置加载顺序?时的应答技巧和注意事项,需要的朋友参考一下 在 Spring Boot 里面,可以使用以下几种方式来加载配置。 1)properties文件; 2)YAML文件; 3)系统环境变量; 4)命令行参数; 等等……
我使用spring解析数据json,格式如下: 请求 答复: 这是我在课堂上的方法: 在调用API之后,解析数据,下一步将按行归属消息插入数据。然后循环获取列表中的数据 当我运行此方法时,我可以从json数据中获取结果,但只有3个字段无法获取值,并且为null: 如何获得msisdn、total\u调用、total\u循环持续时间的值?非常感谢
如何配置spring以使用返回类型?考虑代码: 我得到了404,但我在日志中看到该方法被触发。如果我这样更改签名: 我看到成功的json阵列。 如何使与spring(4.2.RELEASE)配合使用? 更新 对于测试,我编写了以下方法: 而且很有效。面向对象 我测试了这个版本的future: 有点激动,但是。。。作品 所以我原来的方法有以下逻辑: 迭代集合 通过每个集合元素的AsyncRestTe