Spring 注解
@SpringBootApplication
申明让spring boot自动给程序进行必要的配置,这个配置等同于:
@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。
@RequestMapping
提供路由信息,负责URL到Controller中的具体函数的映射。
@ResponseBody
表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。
该注解经常配合RequestMapping使用
@Controller
在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层)
该注解一般配合RequestMapping使用
@RestController
@ResponseBody+@Controller的结合
@ComponentScan
(个人看法)表示将该类自动发现扫描组件。
@Autowired
自动导入依赖的bean
@Import
用来导入其他配置类。
@ImportResource
用来加载xml配置文件。
@Service
注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。
@Bean:
用@Bean标注方法等价于XML中配置的bean。
@Value
注入Spring boot application.properties配置的属性的值。示例代码:
@Value("${upload.uploadWindows}")
@Configuration
加上@Configuration注解主要是给我们的类加上了cglib代理。在执行我们的配置类的方法时,会执行cglib代理类中的方法,其中有一个非常重要的判断,当我们的执行方法和我们的调用方法是同一个方法时,会执行父类的方法new(cglib代理基于继承);当执行方法和调用方法不是同一个方法时会调用beanFactory.getBean获取。
@Component
标注Spring管理的Bean,使用@Component注解在一个类上,表示将此类标记为Spring容器中的一个Bean。
@Qualifier
当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用
Qualifier 的意思是合格者,通过这个标示,表明了哪个实现类才是我们所需要的,添加 @Qualifier 注解,需要注意的是@Qualifier 的参数名称为我们之前定义 @Service 注解的名称之一
@Resource
@Resource和@Autowired注解都是用来实现依赖注入的。只是@AutoWried按by type自动注入,而@Resource默认按byName自动注入。
@EnableAutoConfiguration
自动配置。
@JsonIgnore
作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
@ControllerAdvice
包含@Component。可以被扫描到。统一处理异常。
@ExceptionHandler(Exception.class)
用在方法上面表示遇到这个异常就执行以下方法。
@RequestParam
用于将指定的请求参数赋值给方法中的形参。
有三个属性:
(1)value:请求参数名(必须配置)
(2)required:是否必需,默认为 true,即 请求中必须包含该参数,如果没有包含,将会抛出异常(可选配置)
(3)defaultValue:默认值,如果设置了该值,required 将自动设为 false,无论你是否配置了required,配置了什么值,都是 false(可选配置)
@PathVariable
@PathVariable 映射 URL 绑定的占位符
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过
@PathVariable(“xxx”) 绑定到操作方法的入参中。
一般与@RequestMapping(method = RequestMethod.GET)一起使用
@Override
是伪代码,表示重写(当然不写也可以)
@Repository
@Repository的功能是将数据访问层(Dao层)的类识别并标注为SpringBean