类注解(ElementType.TYPE)
@Component
该注解是通用的 Bean 注解,下属三个注解都是扩展自Component@Service
代表 Service Bean,常作用于服务层(业务层)@Controller
代表 Web Bean,常作用于控制层@Repository
作用于持久化相关 Beaan
@SpringBootApplication
声明当前类是一个配置类.可以通过@Bean
注解生成IOC容器管理的bean
方法注解(ElementType.MRTHOD)
@Override
该注解表示重写,用来检查子类中的方法名与父类是否一致(通常要写)@Autowired
该注解也可应用于类的属性(ElementType.FIELD),用于将Spring容器中的bean自动的和我们需要这个bean的类组装在一起协同使用。配合@Repository
注释可以精准定位:
实现一个名为UserRepository的接口
1 | package com.proc.bean.repository; |
实现其实现:
1 | package com.proc.bean.repository; |
当我们在业务层调用UserRepository时,可以通过@Autowired
免去setter的过程:
1 |
|
@ResponseBody
该注解表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】。
注意:在使用
@RequestMapping
后,返回值通常解析为跳转路径,但是加上@ResponseBody
后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上@ResponseBody
后,会直接返回 json 数据。)
@RestController
该注解等同于:@ResponseBody
+@Controller
@RequestMapping
该注解用于路由(解析URL,并提供资源内容给调用者),根据作用可以分解
为@GetMapping
和@RostMapping
,分别用于Get和Post请求,常用于控制层。
@PostConstruct
该注解被用来修饰一个非静态的void()方法。被@PostConstruct
修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。@PostConstruct
在构造函数之后执行,i常添加在init()方法前。
三种注解或方法在整个Bean初始化中的执行顺序:
Constructor(构造方法)
-> @Autowired(依赖注入)
-> @PostConstruct(注释的方法)
参数注解(ElementType.PARAMETER)
@RequestParam
该注解作用于类的参数,常用于web领域。
例如:
1 | //经过@RequestMapping路由后为:“xxx/?=xxxxxx” |
一旦加上参数注解就代表要参与传递,如果不想让某个参数必须传递,可以用required=false
修饰,例如下面的代码,要求传入两个参数,但是只有”id”是必须传入的:
1 | "/songlist") ( |
属性注解(ElementType.FIELD)
@Autowired
见上文