Spring的常用注解
- 常用注解
- @EnableWebMvc
- @Configuration
- @Bean
- @SpringBootApplication && @MapperScan
- @Controller
- @ResponseBody
- @RestController
- @RequestMapping("robot")
- @Resource
- @RequestMapping
- @Service
常用注解
@EnableWebMvc
在配置类中开启Web MVC的配置支持。
@Configuration
大部分的Spring项目都采用了基于注解的配置,使用@Configuration 标记类作为配置类 替换xml配置文件。一行简单的注解就可以解决很多事情。
详见
- @Configuration有什么用?
- @Configuration和XML有什么区别?哪种好?
- @Autowired 、 @Inject、@Resource 之间有什么区别?
- @Value、@PropertySource 和 @Configuration?
- Spring如何处理带@Configuration @Import的类?
- @Profile有什么用?
- @Configuration 如何嵌套?
- Spring如何对Bean进行延迟初始化?
- Spring项目怎么进行单元测试?
- @Configuration 使用上有哪些约束?
以上问题详见:spring注解使用中常见的概念性问题
@Bean
-
Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
-
SpringIOC 容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理。
@SpringBootApplication && @MapperScan
1. @SpringBootApplication
插叙Spring Boot中的自动装配机制
SpringBoot最强大的功能就是把我们常用的场景抽取成了一个个starter(场景启动器),通过SpringBoot为我们提供的这些场景启动器,我们再进行少量的配置就能使用相应的功能。
这个注解我们点进去就可以发现,它实际上就是一个 @Configuration 注解,这个注解大家应该很熟悉了,加上这个注解就是为了让当前类作为一个配置类交由 Spring 的 IOC 容器进行管理,
SpringBoot 本质上还是 Spring,所以原属于 Spring 的注解在 SpringBoot中也可以直接应用
2.@MapperScan
@Controller
- 使用@Controller 注解时,spring默认方法返回的是view对象(页面),@Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面
- 如果仅仅返回数据,则需要在方法上加@ResponseBody或者直接使用@RestController
@ResponseBody
作用在Controller方法上面,支持将返回值放到response内,而不是一个页面,通常用户返回json数据。
@RestController
- 该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。
@RequestMapping(“robot”)
- 使用方式,@RequestMapping(“xxx”)
- 作用在类和方法上,用于映射web请求,包括访问路径和参数。此路径和参数的请求会调用该类或方法
@Resource
@RequestMapping
1.@RequestMapping注解能将请求和处理请求的控制器方法关联起来,建立映射关系。
2.在SpringMvc接收到请求后就会来找对应的ReuestMapping注解对比,并处理请求。注意:在使用时要确保RequesstMapping注解里面的值唯一。
3.RequestMapping注解加载在类和方法上的不同
- 注解加载类上时,设置的映射路径请求的初始信息
- 注解加在方法上时,设置的映射路径请求的具体信息
4.就是说你如果想访问在方法里的具体信息,就先要具备类上面的初始信息
对于处理指定请求方式的控制器方法,SpringMVC中提供了@RequestMapping的派生注解【生的儿子,功能更细致】
- @GetMapping
- @PutMapping
- @PostMapping
- @DeleteMapping
@Service
@Service(“robotService”)
要说明@Service注解的使用,就得说一下我们经常在spring配置文件applicationContext.xml中看到如下图中的配置:
<!-- 采用扫描 + 注解的方式进行开发 可以提高开发效率,后期维护变的困难了,可读性变差了 -->
<context:component-scan base-package="com.robot.item" />
在applicationContext.xml配置文件中加上这一行以后,将自动扫描指定路径下的包,如果一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml配置文件中定义bean了,类似的还包括@Component、@Repository、@Controller。