spring的常用注解-LMLPHP

       📝个人主页五敷有你      
 🔥系列专栏:Spring
⛺️稳中求进,晒太阳

spring的常用注解-LMLPHP

Spring框架注解:

给容器中注入组件

(1)包扫描+组件标注注解

@Component:

        用于标识一个类作为组件(Component),可以将类交由Spring容器管理,实现组件的自动扫描、实例化、依赖注入和配置管理等功能。当类不属于其他特定层(如控制层、服务层、数据访问层)时,可以使用此注解。

@Repository:

        标识一个类作为数据访问层组件(Repository),主要用于标注数据访问层或DAO组件。通过该注解,可以将类交由Spring容器管理,享受依赖注入、事务管理、AOP等功能。

@Service:

        标识一个类作为服务层组件,主要用于进行业务逻辑处理。Spring容器能够自动识别并实例化服务层组件,并能够自动将请求映射到对应的服务方法进行处理。

@Controller:

        标识一个类作为控制层组件(Controller),用于处理HTTP请求。Spring容器能够自动识别并实例化控制器层组件,并能够自动将请求映射到对应的控制器方法进行处理。

(2)@Bean 导入第三方包里面的注解
(3)@Import()

@ImportSelector:返回需要导入的组件的全类名数组;

@ImportBeanDefinitionRegistrar:手动注册bean到容器中

注入bean的注解

@Autowired:

用于自动装配bean,可以自动将依赖的对象注入到需要该对象的bean中。这可以消除Java代码中的getter/setter方法和bean属性中的property。

@Resource :

此注解是Java EE规范中的注解,也可以用于自动装配bean。与@Autowired不同的是,@Resource可以通过name属性指定bean的名称,如果没有指定name属性,则会默认按照bean的名称进行自动装配。

@ResponseBody:

        用于将返回结果直接写入HTTP响应体中,通常与@Controller注解一起使用,将Java对象转换为JSON格式的数据返回给客户端。

@Configuration:

        标识当前类是配置类,它包含了一个或多个@Bean注解的方法,这些方法会被Spring容器处理,用于生成bean定义和服务请求所需的对象。

@Bean :

        在@Configuration注解的类中,通过@Bean注解的方法可以定义并初始化Bean,然后由Spring的IOC容器来管理这些Bean。

@Scope:

        用于指定bean的作用域,如"singleton"、"prototype"等。

@Lazy :

        用于延迟bean的初始化,即在第一次请求时才会进行初始化。

@PostConstruct:

        在依赖注入完成后,执行初始化方法。

@PreDestroy:

        在bean销毁之前执行的方法。

@Qualifier :

        与@Autowired注解配合使用,用于按照名称装配bean。

@Value:

                用于为属性赋值,支持基本数据类型、String、SpEL表达式等。

@PropertySource:

        加载指定路径的配置文件(如.properties文件)。

@Aspect:

        用于声明一个类为切面类,切面类中可以定义通知和切点。

@Before:

        前置通知,在目标方法被调用之前执行。

@After:

        后置通知,在目标方法执行之后执行(无论方法是否成功完成)。

@AfterReturning:

        返回通知,在目标方法正常执行完成后执行,通常可以访问到目标方法的返回值。此注解可以指定一个返回值形参名,如` @AfterReturning(pointcut = "execution(* com.example.service.*.*(..))", returning = "result")`。

@AfterThrowing:

        异常通知,在目标方法抛出异常后执行。此注解可以指定一个形参名来访问抛出的异常对象,如`@AfterThrowing(pointcut = "execution(* com.example.service.*.*(..))", throwing = "ex")`。

@Around:

        环绕通知,在目标方法执行前后都可以执行自定义的逻辑,可以控制目标方法的执行。

@Pointcut:

        用于定义切点,即一个或多个连接点的集合。通过切点表达式,可以指定哪些方法的执行需要进行拦截。例如,`@Pointcut("execution(* com.example.service.*.*(..))")`定义了一个切点,用于拦截`com.example.service`包下所有类的所有方法的执行。

@Valid

        用于参数校验。

@Transactional:

        用于声明事务管理

2. SpringMVC框架注解:

@RequestMapping:

        用于定义请求的URL映射,可以指定请求的方法、请求路径等信息。它可以用在类或方法上,用于类或方法级别的请求映射。

@RequestParam:

         用于获取请求参数的值,将请求参数绑定到方法参数上。

@ModelAttribute:

        用于绑定请求参数到数据模型上,常用于表单数据的绑定和校验。

@Controller:

        标识一个类为Spring MVC的控制器类。此类通常包含处理HTTP请求的方法。

@RequestMapping:

        用于映射请求URL到特定的处理器方法或处理器类。它可以定义在类级别或方法级别。在类级别定义时,它将所有请求URL映射到该类中的方法;在方法级别定义时,它将特定的请求URL映射到该方法。

   @GetMapping, @PostMapping, @PutMapping, @DeleteMapping,@PatchMapping**:这些是`@RequestMapping`的特殊化版本,用于处理HTTP GET、POST、PUT、DELETE和PATCH请求。例如,`@GetMapping("/hello")`等同于`@RequestMapping(value = "/hello", method = RequestMethod.GET)`。

@PathVariable:

        用于从请求URL中提取路径变量的值,并将其绑定到方法的参数上。路径变量是URL模板中的一部分,由大括号`{}`包围。

@RequestParam:

        用于从请求参数中绑定值到方法的参数上。这些参数可以是查询字符串中的参数,也可以是表单数据。

@ResponseBody:

        表示该方法的返回值应该被绑定到响应体上。通常与`@RequestMapping`一起使用,返回JSON或XML数据。

@RestController:

        这是`@Controller`和`@ResponseBody`的组合。它表示该类中的所有方法都将返回数据绑定到响应体上,而不是视图名称。

3. MyBatis框架注解:

@Mapper:

        用于标注DAO层接口,并交由MyBatis框架进行实现。通过该注解,MyBatis可以自动扫描并加载接口的实现类,实现接口的自动映射。

@Select、@Insert、@Update、@Delete:

        分别用于标注查询、插入、更新和删除语句的SQL映射。这些注解可以直接写在接口方法上,代替XML映射文件中的SQL语句。

@Result:

        用于指定将结果集的列和Java对象属性之间的映射关系。它可以在@Select等注解的方法中使用,定义结果集与Java对象之间的映射关系。

05-02 12:14