spring,springMVC,springBoot常用注解
spring常用注解
声明bean的注解 | 说明 |
---|---|
@Component | 使用在类上用于实例化Bean |
@Repository | 使用在Dao层类上用于实例化Bean |
@Service | 使用在Service层类上用于实例化Bean |
@Controller | 使用在Web层类上用于实例化Bean(SpringMVC中会讲到) |
@Autowired | 使用在字段上用于根据类型依赖注入 |
@Qualifier | 结合@Autowired一起使用用于根据名称进行依赖注入 |
@Resource | 相当于@Autowired+@Qualifier,按照名称进行注入 |
@Bean | 使用在方法上,将该方法的返回值存储到Spring容器中,通常用于管理第三方类(不是自己定义的类)的bean<br / |
@Value | 注入普通属性 |
@Scope | 标注Bean的作用范围 singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。 prototype : 每次请求都会创建一个新的 bean 实例。 request : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。 session : 每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。 |
@PostConstruct | 使用在方法上标注该方法是Bean的初始化方法 |
@PreDestroy | 使用在方法上标注该方法是Bean的销毁方法 |
@Transactional | 在需要进行事务控制的类或是方法上开启事务 |
@Configuration | 用于指定当前类是一个 Spring配置类,当创建容器时会从该类上加载注解 |
@ComponentScan | 用于指定Spring在初始化容器时要扫描的包。 作用和在Spring的xml配置文件中的 <context:component-scan base-package=“com.qfedu” />一样。 |
@PropertySource | 用于加载.properties文件中的配置 |
@Import | 用于导入其他配置类 |
@MapperScan | 扫描特定包下的mapper |
@EnableTransactionManagement | 配置事务的注解驱动 |
@runWith | –@RunWith就是一个运行器 –@RunWith(JUnit4.class)就是指用JUnit4来运行 –@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环 境,以便在测试开始的时候自动创建Spring的应用上下文 –@RunWith(Suite.class)的话就是一套测试集合 |
springMVC常用注解
注解 | 说明 |
---|---|
@Controller | 指定这是一个控制器类,这个注解的作用和@Component作用是一样的,用来配置bean让Spring容器进行管理。配置了@Controller注解之后,需要在SpringMVC配置文件中配置: < bean class=“com.host.app.web.controller.MyController”/> < context:component-scan base-package = “com.host.app.web” />//路径写到controller的上一层 |
@RequestMapping | 用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 这个知识普通形式,当然还有rest风格,比如 @PostMapping,@GetMapper等等 |
@PathVariable | 用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。 |
@requestParam | @requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter(“name”) 它有三个常用参数:defaultValue = “0”, required = false, value = “isApp”;defaultValue 表示设置默认值,required 铜过boolean设置是否是必须要传入的参数,value 值表示接受的传入的参数类型。 |
@ResponseBody | 返回的数据不是html标签的页面,返回json时使用 |
@RequestHeader | 接受请求 也就是地址栏?name=1中的那么的值 |
@CookieValue | 接受cookit 的值 |
@RequestBody | 接受请求体的内容 |
@RequestHeader | 接受请求头的信息 |
全局异常处理 | 说明 |
@ControllerAdvice | 包含@Component。可以被扫描到。统一处理异常。 |
@ExceptionHandler(Exception.class) | 用在方法上面表示遇到这个异常就执行以下方法。 |
springboot常用注解
注解 | 说明 |
---|---|
@SpringBootApplication | 申明让spring boot自动给程序进行必要的配置,这个配置等同于: @Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。 – @SpringBootConfiguration:标注当前类是配置类,这个注解继承自@Configuration。并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。 – @EnableAutoConfiguration:是自动配置的注解,这个注解会根据我们添加的组件jar来完成一些默认配置,我们做微服时会添加spring-boot-starter-web这个组件jar的pom依赖,这样配置会默认配置springmvc 和tomcat。 – @ComponentScan:扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。等价于context:component-scan的xml配置文件中的配置项。 |
@SpringBootTest | 一般配合@RunWith(SpringJUnit4ClassRunner.class)使用 @SpringBootTest替代了spring-test中的@ContextConfiguration注解,目的是加载ApplicationContext,启动spring容器。 使用@SpringBootTest时并没有像@ContextConfiguration一样显示指定locations或classes属性,原因在于@SpringBootTest注解会自动检索程序的配置文件,检索顺序是从当前包开始,逐级向上查找被@SpringBootApplication或@SpringBootConfiguration注解的类。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了