conditional否定前缀

conditional否定前缀

为了方便我们在日常开发中更加便捷地使用注解,本文将对各种开发所需要的注解进行统一归类,并结合实际用例进行解析,以便日后查阅和使用。

一、依赖注入相关注解

1. 组件注解:包括@Component、@Controller、@Service、@Repository等,这些注解都会将类标识为Spring的组件,使得Spring能够自动扫描并加载到IOC容器中。

@Component:通用的组件注解,其他注解如@Controller、@Service、@Repository都是@Component的特例。

@Controller:用于MVC控制层,DispatcherServlet会自动扫描并加载该注解的类。

@Service:用于业务逻辑层。

@Repository:用于数据访问层。

2. 依赖注入注解:包括@Autowired、@Inject和@Resource等,这些注解可以实现字段、方法和构造函数的自动注入。

@Autowired:默认按类型注入,可通过@Qualifier指定具体的Bean。

@Inject:作用与@Autowired相同,可标注在字段、方法和构造器上。

@Resource:默认按名称注入,可通过name属性指定名称。

二、作用域和生命周期相关注解

1. @Scope:用于定义Bean的作用域,包括singleton、prototype、session和request四种。

2. @PostConstruct和@PreDestroy:分别用于标记初始化方法和销毁方法。

三、配置注解

1. @Configuration:用于替代xml配置文件,被该注解标记的类内包含被@Bean注解的方法,这些方被Spring扫描并用于构建bean定义。

2. @SpringBootConfiguration:组合注解,包括@Configuration、@EnableAutoConfiguration和@ComponentScan。

3. 其他配置相关注解:包括@AutoConfigureAfter、@ComponentScan、@Filter等。

四、资源、值等注入注解

包括@Value、@Bean、@PropertySource、@ImportResource和@ConfigurationProperties等,这些注解主要用于资源的注入和配置。

五、条件注解@Conditional及其衍生注解

@Conditional根据特定条件创建特定的Bean,衍生出的注解包括@ConditionalOnBean、@ConditionalOnClass、@ConditionalOnExpression、@ConditionalOnJava、@ConditionalOnMissingBean、@ConditionalOnMissingClass、@ConditionalOnNotWebApplication和@ConditionalOnProperty等。这些注解可以根据不同的条件控制Bean的创建。

类加载器注解介绍:

注解可以用于指定资源文件的存在性、标注方法、类和接口等。在Spring框架中,我们可以通过注解来加载和配置bean。例如,可以使用@Profile注解来指定某个bean属于哪一个profile。还有@Configuration、@ComponentScan等注解用于配置和扫描组件。通过@ImportResource和@Import注解,我们可以导入其他的配置资源或类。

验证注解:

验证注解是Java中用于数据验证的一种机制。这些注解主要在javax.validation包下。例如,@Valid注解用于启动校验,它可以紧跟在带有该注解的参数后面。其他的验证注解如@AssertFalse、@AssertTrue、@DecimalMax、@DecimalMin、@Digits等,都是用来约束元素的值或类型。

AOP(面向切面编程)与AspectJ的注解式切面编程:

AspectJ的注解式在org.aspectj包下。例如,@Aspect注解声明一个类为切面;@After、@Before、@Around等注解是通知方法,它们会在目标方法的不同时机执行;@Pointcut能定义可重用的切点;@EnableAspectJAutoProxy开启Spring对AspectJ的支持。在编写切面时,我们可以使用execution指示器来匹配执行方法,还有其他指示器如arg()、@args()、this()、Target、@target()、within()和@within()等。

Spring MVC注解:

在Spring MVC中,有一些重要的注解用于配置URL和方法之间的映射、处理返回值等。例如,@EnableWebMvc会开启一些默认配置;@RequestMapping用来映射Web请求;@ResponseBody支持将返回值放在response体内;@RequestBody允许request的参数在request体内;@PathVariable用来接收路径参数;@RestController是@Controller和@ResponseBody的组合;@ModelAttribute用于绑定请求参数到命令对象等。Spring security中的@EnableWebSecurityConfig和@EnableGlobaleMethodSecurity是两个关键注解,用于用户的访问认证和授权。

Spring Boot注解:

Spring Boot的核心注解是@SpringBootApplication,它组合了@Configuration、@EnableAutoConfiguration和@ComponentScan,主要用于开启自动配置。而@EnableAutoConfiguration则是让Spring Boot根据依赖的jar包为当前项目进行自动配置。还有其他的Spring Boot注解如@EnableWebSecurity等。


conditional否定前缀

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注