spring mvc 和spring boot 中注解的使用
1 spring mvc和spring boot之间的关系
spring boot包含spring mvc。所以,spring mvc的注解在spring boot总都是可以用的吗?
spring boot通过spring提供一系列解决方案,包括spring mvc。
2 spring mvc到spring boot的简化之路
spring boot和spring、spring mvc不是竞争关系,spring boot使得我们可以更容易的使用spring和spring mvc。
2.1 手工配置到自动配置
使用spring的应用程序需要进行很多的配置,比如spring mvc,它需要配置视图解析器、配置DispatcherServlet,使用Hibernate和Mybatis的时候,还需要进行其它各种配置。spring boot引入自动配置,所有的这些spring boot都帮使用者做了,使用者不用再进行这些复杂的配置,而专注于业务。
2.2 使用starter进行依赖管理
比如使用spring mvc时,我们如果要用到Hibernate、jackson、log4j等等时候,我们需要设置好它们的版本。但是,spring boot引入starter了之后。我们只需要这一个依赖就可以了,spring boot会自动下载所有相关的依赖。我们只需要进行简单的配置就可以了。
综上,spring boot是对spring和spring mvc的简化,所以,spring和spring mvc的注解都可以在spring boot中用。所以,在spring boot项目中不需要去关心使用的是什么的注解,而关注这个注解的功能以及它能不能满足自己的需求即可。
3 spring boot专有的注解
3.1 @SpringBootApplication
它包含@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解。
3.2 @EnableAutoConfiguration
spring boot根据用户指定的start依赖,自动加载相应的模块,并且对相应的模块进行配置。
4 @Configuration注解
这个注解本质上是一个@Component,所以,它可以@ComponentScan可以处理被@Configuration注解的类。
该注解表示这类相当于是一个配置文件,基于注解的配置比基于xml的配置具有更好的可读性,更加方便。
5 @Component
表示这是一个bean。
6 @ComponentScan
弄懂了@ComponentScan就弄懂了Spring。
使用Spring的第一步是定义各种beans,即各种Components,用@Component、@Repository、@Service等来定义一个bean。但是,Spring不知道它们在哪里,所以,就需要@ComponentScan来指定它们的搜索路径。
6.1 如果是一个Spring boot的项目
因为在@SpringBootApplication注解中就已经包含了@ComponentScan注解,并且,默认的扫描的包是@SpringBootApplication注解类所在的包以及该包所有的子包。如果所有的bean都位于该包下面那么就不需要再用@ComponentScan指定包名了。
但是,如果除了这个包之外还有其它的包,那么就需要用@ComponentScan自定包名了。
例如
@ComponentScan("other package")
@SpringBootApplication
public class SpringBootInMyApplication {
}
一句话,@ComponentScan用于告诉spring去哪里找bean,因为Spring要做的事情有两个,第一,找bean,第二,建立它们之间的依赖关系。
6.2 如果是一个非Spring boot项目
我们一般会在xml中指定@ComponentScan所需要scan的pacakge。
7 @Controller和@RequestMapping
这个两个是Spring mvc的注解,前者负责处理DispatcherServlet分发的请求,后者负责定义请求的url和Controller方法之间的映射关系。
@RequestParam负责获取请求的参数。
8 @Configuration为什么和@ComponentScan一起使用
因为这样的类就相当于是applicaiton-bean.xml了,因为如果是xml配置spring mvc的话,@ComponentScan就是在xml中配置所扫描的package的。
本质上是一样的,就是指定@ComponentScan所扫描的包。
spring mvc 和spring boot 中注解的使用的更多相关文章
- Spring Boot中注解@ConfigurationProperties
在Spring Boot中注解@ConfigurationProperties有三种使用场景,而通常情况下我们使用的最多的只是其中的一种场景.本篇文章带大家了解一下三种场景的使用情况. 场景一 使用@ ...
- Spring MVC和Spring Boot的理解以及比较
Spring MVC是什么?(1)Spring MVC是Spring提供的一个强大而灵活的模块式web框架.通过Dispatcher Servlet, ModelAndView 和 View Reso ...
- Spring,Spring MVC及Spring Boot区别
什么是Spring?它解决了什么问题? 我们说到Spring,一般指代的是Spring Framework,它是一个开源的应用程序框架,提供了一个简易的开发方式,通过这种开发方式,将避免那些可能致使代 ...
- Spring MVC 到 Spring Boot 的简化之路(山东数漫江湖)
背景 从Servlet技术到Spring和Spring MVC,开发Web应用变得越来越简捷.但是Spring和Spring MVC的众多配置有时却让人望而却步,相信有过Spring MVC开发经验的 ...
- 0054 Spring MVC的@Controller和@RequestMapping注解
@Controller注解 该注解用来指示一个类是一个控制器,在Spring的配置xml文件中开启注解扫描 <context:conponent-scan base-package=" ...
- 【转】Spring,Spring MVC及Spring Boot区别
对于一个Java开发者来说,Spring可谓如雷贯耳,无论是Spring框架,还是Spring引领的IOC,AOP风格,都对后续Java开发产生的深远的影响,同时,Spring社区总能及时响应开发者的 ...
- spring、spring mvc与spring boot的区别是什么?
Spring 的功能 Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等.但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 ao ...
- Spring,Spring MVC,Spring Boot 三者比较
Spring,Spring MVC,Spring Boot 三者比较 Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等.但他们的基础都是Spring 的 io ...
- spring mvc和spring boot的区别
spring boot只是一个配置工具,整合工具,辅助工具. springmvc是框架,项目中实际运行的代码 Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等 ...
随机推荐
- JavaScript code modules
https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules Non-standardThis feature is ...
- 网络处理器(Network Processor)
网络处理器(Network Processor,简称NP),又可以称为交换芯片,专用于实现核心交换机高速转发功能. 根据网络处理器会议(Network Processors Conference)的定 ...
- 线性回归 r python 比较
w http://blog.sina.cn/dpool/blog/s/blog_70f632090101bp8u.html
- abstract 和 interface 抽象类和接口的区别
初版:以后再整理. 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需 ...
- 挣值管理(PV、EV、AC、SV、CV、SPI、CPI)
挣值管理法中的PV.EV.AC.SV.CV.SPI.CPI这些英文简写相信把大家都搞得晕头转向的.在挣值管理法中,需要记忆理解的有三个参数:PV.AC.EV. PV:计划值,在即定时间点前计划完成活动 ...
- 剑指offer--day01
1.1题目:二维数组中的查找:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断 ...
- Java io基础
1.什么是IO? Java IO即Java 输入输出系统.不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒 ...
- python2.7打印中文乱码的问题解决
一. import sys reload(sys) sys.setdefaultencoding('utf-8') print('测试中文') 二. print(‘我是中国人’) >>&g ...
- 前端 CSS 优先级 样式设置important
!important 的使用. !important方式来强制让样式生效,但并不推荐使用.因为如果过多的使用!important会使样式文件混乱不易维护. 万不得已可以使用!important 现在选 ...
- Spring MVC-学习笔记(2)DispatcherServlet、@Controller、@RequestMapping、处理方法参数类型、可返回类型、Model、ModelMap、ModelAndView
1.前端控制器org.springframework.web.servlet.DispatcherServlet 所有的请求驱动都围绕这个DispatcherServlet来分派请求.springMV ...