spring、springMVC、springCloud常用注解大全

常用注解大全

@Configuration:该使用该注解的类等价 与XML中配置beans,相当于Ioc容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean,与xml中配置的bean意思一样。  
@Value:为了简化从properties里取配置,可以使用@Value, 可以properties文件中的配置值。
@Controller, @Service, @Repository,@Component:目前4种注解意思是一样,并没有什么区别,区别只是名字不同
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常。
@Autowired:Autowired默认先按byType,如果发现找到多个bean,则,又按照byName方式比对,如果还有多个,则报出异常。
@Qualifier:可以手动指定按byName方式注入
@Resource:默认按 byName自动注入,如果找不到再按byType找bean,如果还是找不到则抛异常,无论按byName还是byType如果找到多个,则抛异常。
@Async:基于@Async标注的方法,称之为异步方法,这个注解用于标注某个方法或某个类里面的所有方法都是需要异步处理的,需要与@EnableAsync配合使用。
@Singleton:只要在类上加上这个注解,就可以实现一个单例类,不需要自己手动编写单例实现类。
@NotBlank:检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@Size(min=, max=): 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内 
@Email:验证是否是邮件地址,如果为null,不进行验证,算通过验证。
@RequestBody(required=true)::有个默认属性required,默认是true,当body里没内容时抛异常。
@CrossOrigin:是Cross-Origin ResourceSharing(跨域资源共享)的简写,作用是解决跨域访问的问题,在Spring4.2以上的版本可直接使用。在类上或方法上添加该注解
@RequestParam:作用是提取和解析请求中的参数。@RequestParam支持类型转换,类型转换目前支持所有的基本Java类型
@PathVariable:处理requet uri部分,当使用@RequestMapping URI template 样式映射时, 即someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上
@RequestHeader,@CookieValue: 处理request header部分的注解将头部信息绑定到方法参数上
@scope:默认是单例模式,即@Scope(“singleton”),singleton:单例,即容器里只有一个实例对象。prototype:多例,request:每有一个request请求,会创建一个实例。
@RestController:@RestController = @Controller + @ResponseBody。是2个注解的合并效果,即指定了该controller是组件,又指定方法返回的是String或json类型数据
@Bean:用于配:Java 8可以直接使用重复注解特性配置多个@ComponentScan)用于扫描包方式配置Bean;
@Aspect切面配置支持,使用Spring Boot引入了AOP启动器的话不需要显式开启
@Transactional (readOnly=true):注解式事务
@SringBootApplication相当于@configuration,@EnableAutoConfiguation @ComponentScan三个注解合用
@EnableDiscoveryclient 自定义服务发现的客服端
@EnableEurekaClient配置本应用将使用服务注册和服务发现,注意:注册和发现用这个注解。
@EnableHystrix表示启动断路器,断路器依赖于服务注册和发现。
@HystrixCommand注解方法失败后,系统将西东切换到fallbackMethod方法执行
@EnableAutoConfiguration spring boot自动配置,尝试根据你添加的jar依赖自动配置你的spring应用。
@FeignClient注解中的fallbank属性指定回调类
### Spring vs Spring Boot vs Spring MVC vs Spring Cloud Differences and Use Cases #### Spring Framework Spring框架是一个全面的编程和配置模型,用于开发Java应用程序。它提供了依赖注入、面向切面编程(AOP)、事务管理等功能。通过模块化设计,开发者可以根据需求选择所需的组件来构建应用。 - **核心功能**:IoC容器、AOP支持、数据访问抽象层等。 - **适用场景**:适用于任何规模的企业级Java项目,特别是那些需要高度定制化的解决方案[^1]。 ```java // Example of using core Spring functionality like dependency injection public class MyService { private final Repository repository; @Autowired public MyService(Repository repository) { this.repository = repository; } } ``` #### Spring Boot 作为Spring的一个子项目,Spring Boot旨在简化新Spring应用的初始搭建以及开发过程。其主要特点是自动配置机制,能够基于类路径中的jar包自动生成合理的默认设置;同时也提供了一系列开箱即用的功能模块,减少了繁琐的手动配置工作量。 - **核心优势**:快速启动新的Spring项目,减少XML配置文件编写,内置嵌入式的HTTP服务器(Tomcat/Netty),易于部署到云平台。 - **应用场景**:适合希望加速迭代周期并降低维护成本的新建微服务架构下的各个独立服务单元[^2]。 ```yaml # Typical application.properties file in a Spring Boot project server.port=8080 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.jpa.hibernate.ddl-auto=update ``` #### Spring MVC 专注于处理HTTP请求响应交互逻辑的部分,属于整个Spring生态系统的一部分。该技术栈实现了MVC模式(Model View Controller),使得前端页面展示与后台业务流程分离更加清晰明了。借助于强大的注解驱动方式定义路由映射关系,极大地方便了RESTful API的设计实现。 - **特色亮点**:灵活样的视图解析器集成方案,RestTemplate工具类辅助调用外部API接口,异步非阻塞式I/O操作的支持。 - **实际用途**:广泛应用于Web端前后端联调测试阶段或是对外公开的数据交换网关建设当中[^3]。 ```java @RestController @RequestMapping("/api/v1/users") public class UserController { @GetMapping("/{id}") ResponseEntity<User> getUserById(@PathVariable Long id){ // Implementation here... } } ``` #### Spring Cloud 围绕着分布式系统的协同运作而诞生的一套综合性的开源库集合体。涵盖了诸如服务发现注册中心Eureka/Zookeeper、断路器Hystrix熔断保护机制、负载均衡Ribbon、声明式Feign客户端等个方面。这些特性共同构成了支撑起大型互联网公司内部复杂网络环境稳定运行的技术基石之一。 - **重要组成部分**:Config Server集中式配置管理,Gateway统一入口代理转发,Bus消息总线事件传播通知。 - **典型实例**:当企业面临高并发流量冲击时,利用上述提到的各种中间件产品组合起来形成一套完整的弹性伸缩体系结构,从而保障线上业务连续性和用户体验质量不受影响[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值