Springboot 的常用注解

一、启动

@SpringBootApplication

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
    
}

@SpringBootApplication包含了@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan三个注解

@SpringBootConfiguration 

SpringBootConfiguration 是 SpringBoot 项目的配置注解,也是一个组合注解,标注当前类是配置类, 并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
   @AliasFor(annotation = Configuration.class)
   boolean proxyBeanMethods() default true;
}

SpringBootConfiguration 注解上使用了 @Configuration 注解。因此 @SpringBootConfiguration 可以替代 @Configuration 注解。

@EnableAutoConfiguration

@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。

借助于Spring框架原有的工具类SpringFactoriesLoader的支持,@EnableAutoConfiguration可以智能的自动配置

@ComponentScan 

@ComponentScan的功能其实就是自动扫描并加载符合条件的组件或bean定义,最终将这些bean定义加载到容器中。我们可以通过basePackages等属性指定@ComponentScan自动扫描的范围,如果不指定,则默认Spring框架实现从声明@ComponentScan所在类的package进行扫描,默认情况下是不指定的,所以SpringBoot的启动类最好放在root package下。

二、Controller 

@Controller

控制器,处理http请求。

@RestController 复合注解

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {

	/**
	 * The value may indicate a suggestion for a logical component name,
	 * to be turned into a Spring bean in case of an autodetected component.
	 * @return the suggested component name, if any (or empty String otherwise)
	 * @since 4.0.1
	 */
	@AliasFor(annotation = Controller.class)
	String value() default "";
}

@RestController源码,相当于@ResponseBody+@Controller合在一起的作用,RestController使用的效果是将方法返回的对象直接在浏览器上展示成json格式.

@RequestBody

通过HttpMessageConverter读取Request Body并反序列化为Object对象

@RequestMapping

@RequestMapping ,将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上

@GetMapping

@GetMapping 用于将HTTP get请求映射到特定处理程序的方法注解

@PostMapping

@PostMapping 用于将HTTP post请求映射到特定处理程序的方法注解

三、与bean相关的注解

@Repository

DAO层注解

@Service

@Service是@Component注解的一个特例,作用在类上,作用域默认为单例,使用注解配置和类路径扫描时,被@Service注解标注的类会被Spring扫描并注册为Bean,@Service使用时没有传参数,Bean名称默认为当前类的类名,首字母小写,@Service(“BeanId”)或@Service(value=”BeanId”),在使用时传参数,将使用value作为Bean名字。

@Scope

@Scope作用在类上和方法上,用来配置 spring bean 的作用域。

@Bean

产生一个bean的方法,并且交给Spring容器管理,支持别名@Bean("xx-name")。

@Autowired 自动导入

作用在构造函数、方法、方法参数、类字段以及注解上,

@Autowired注解可以实现Bean的自动注入。

@Component

把普通pojo实例化到spring容器中,@Component就是告诉spring,我是pojo类,然后spring会自动提取相关信息。就不用写xml配置文件了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值