spring的注解

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

spring的注解_第1张图片
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。

你可能感兴趣的:(spring,spring,java,spring,boot)