SpringBoot常用注解
本文最后更新于:3 年前
类名上的注解
注解 | 使用位置 | 说明 |
---|---|---|
@RestController | 类名上 | 相当于@ResponseBody加@Controller |
@Controller | 类名上 | 声明该类时一个SpringMVC Controller 对象 |
@Service | 类名上 | 声明一个业务处理类(实现非接口类) |
@Repository | 类名上 | 声明数据库访问类(实现非接口类) |
@Component | 类名上 | 代表其是 Spring 管理类,常用在无法用@Service、@Repository 描述的类上,相当于通用的注解 |
@Configuration | 类名上 | 声明该类是一个配置类,常与 @Bean 配合使用 |
@Resource | 类名上、属性或构造函数参数上 | 默认按照 byName 自动注入 |
@Autowired | 类名上、属性或构造函数参数上 | 默认按照 byType 自动注入 |
@RequetsMapping | 类名上或方法上 | 如果用在类上,则表明所有响应请求的方法都是以该地址作为父路径的 |
@Transactional | 类名上或方法上 | 用于处理事务 |
@Qualifier | 类名上或属性上 | 为 @Bean 指定名称,随后再通过名字引用Bean |
@RestController
用于返回JSON、XML等数据,但不能返回HTML页面。
相当于注解@ResponseBody 和注解 @Controller 合在一起使用。
@Controller
用于标注控制器层,在MVC开发模式中代表 C
(控制器)。
主要用于构建MVC模式的程序。
@Service
用于声明一个业务处理类(实现非接口类),用于标记服务层,处理业务逻辑。
@Repository
用于标记业务访问层
@Component
用于把普通的POJO实例化到 Spring 容器中。
当类不属于注解@ConTroller 和@Service等时,就可以使用注解@Component来标注这个类。
可以配合CommandLineRunner 使用,以便在程序启动后执行一些基础任务。
@Configuration
用于标注配置类,可以由 Spring 容器自动处理。
作为Bean的载体,用来指示一个类声明、一个或者多个@Bean方法,在运行时为这些Bean生成BeanDefinition和服务请求。
@Resource
@Resource和@Autowired都可以用来装配Bean,也可以写在字段或者Setter 方法上。
@Autowired
表示被修饰的类需要注入对象。Spring会扫描所有被 @Autowired 标注的类,然后根据类型在IoC容器中找到匹配的类进行注入。
被@Autowired注解后的类不再需要导入文件。
@RequetsMapping
用来处理请求地址映射,用在类或者方法上。如果用在类上,则表示类中的所有响应请求的方法都是以该路径作为父路径的。
该注解的6个属性:
- Params:指定Request中必须包含某些参数值,才让该方法处理。
- Headers:指定Request中必须包含某些指定的header值,才能让该方法处理请求。
- Value:指定请求的实际地址,指定的地址可以是URL template 模式。
- Method:指定请求的Method类型,如GET、POST等。
- Consumes:指定处理请求的提交内容类型Ontent-Type。
- Produces:指定返回的内容类型。只有当 Request 请求头中的Accept 类型中包含该指定类型时才返回。
@Transactional
可以用在 接口、借口方法、类、类方法。
Spring不建议在 接口或者接口方法上使用该注解,因为该注解只有使用在基于接口的代理时才会生效。
如果异常被捕获(try{ }catch{ }
)了,事务就不回滚了。如果想让食物回滚,则必须再往外抛出异常(try{ }catch{ throw Exception }
)。
@Qualifier
用于标注哪一个实现类才是需要注入的。
@Qualifier的参数名称为被注入的类中的注解@Service标注的名称。
@Qualifier和@Autowired一起使用:
1 |
|
@Resource和@Qualifier的不同
@Resource自带name属性。
方法名上的注解
明天再写
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!