`
hpgary
  • 浏览: 81740 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring注解大全

    博客分类:
  • Java
 
阅读更多

1、@Configuration

完全替换spring xml文件功能,可自动装配bean,根据@Bean注解创建bean,实例如下

 

@Configuration
public class App01 {
	
	@Bean
	public Person bean1() {
		Person p2 = new Person();
		p2.setName("001");
		return p2;
	}
}

 

 2、@PropertySource

 

加载配置文件属性到spring上下文的 StandardEnvironment对象中,StandardEnvironment对象包括当前操作系统的环境变量和系统变量如果有相同名称的key会自动将旧值覆盖

 

@PropertySource("classpath:config.properties")

 3、@Value

获取Environmonet中的值,该注解在属性上使用

${server.port:80} //表示 获取环境变量中的server.port 的值,如果值为空,就默认80,不设置默认值获取不到该值就会报错
String port;

 4、@Repository 

标注在类上,官方推荐注解在数据访问层上,标注后,可通过Spring上下文获取该bean,效果如同Component一致

5、@Controller

 标注在控制类上,官方推荐注解在控制器handler上,标注后可通过spring上下文获取该bean,通过将该类转换城一个控制器,可通过url访问 返回数据或者对应的页面

6、@Service

标注在类上,官方推荐注解在服务器层上,标注后可通过spring上下文获取该bean

7、@Component

标注在类上,官方推荐如果非以上三种情况,就标注@Component, 如标注Aspect类,这种无法明确规定该类是service还是访问数据层所以就标注@Component

8、@Bean

标注在方法上,让方法返回的对象放入到Spring上下文中,相当于xml配置文件中bean标签功能,可以通过参数的方式传递其他依赖bean。例如:

 

@Configuration
public class App01 {
	
	@Bean
	public Person bean1() {
		Person p2 = new Person();
		p2.setName("001");
		return p2;
	}
}
 
9、@ConfigurationProperties
标注在方法或者类上,指明该类获取上下文环境变量的时候在获取key前面加入固定的值,例如
@ConfigurationProperties(prefix = "spring.upload")
public class AttachmentProperties  implements SecurityPrerequisite {
	private String path ; 
	private String dateformat ;
       // setter
      // getter
}
 上面配置,会自动在Environment对象中获取spring.upload.path 和 spring.upload.dateformat 值 
10、@EnableConfigurationProperties
启用自动配置属性标注在类上,作用让Properties类的值从Environment中自动获取,并创建对象放入spring上下文中。例如:
@SpringBootApplication(scanBasePackages="com.myalice")
@EnableConfigurationProperties(AttachmentProperties.class)
public class App extends SpringBootServletInitializer {}
 11、@RequestMapping
注解在类和方法上,注解在类上将类转换成为Controller,这个类下所有的方法访问url开头都加上这个注解的value值,注解在方法上,类必需有Controller或者RequestMapping方法,方法可通过类的RequestMapping的值加上方法上RequestMapping注解的value值例如:
@Controller
@RequestMapping("/admin")
public class AdminUserCtrl {
	@RequestMapping("/list")
	public String list() {
		return "redirect:/admin/index.html";
	}
}
 12、@Configurable
注解在类上,不将该类创建为bean,也不将类中标注@Bean注解的方法创建城Bean,只设置spring上下文的值到该类里
13、@EnableScheduling
启动定时任务,标注在类上,订阅一个定时任务:@Scheduled(cron="秒 分 时 天 月 周") ,使用Scheduled注解必需使用 @EnableScheduling注解
14、EnableAsync
启用方法异步执行,标注在类上,让某个方法异步执行在方法上加注解@Async ,异步需要获取返回值,返回类型设置为:Future<?> ,返回实现类型为:new AsyncResult<?>(result) 例如:
@Async
	public String getName() {
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
		}
		System.out.println("返回");
		return name;
	}
	
	@Async
	public Future<String> getNameFuture() {
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
		}
		System.out.println("返回");
		return new AsyncResult<String>("HF");
	}
 15、@ConditionalOnBean
注解在类上,必需先创建某些Bean才能创建这个Bean,例如 Mybatis spring的分页插件 PageHelperAutoConfiguration,创建他之前,就必需先创建SqlSessionFactory,在类上注解如下:
@Configuration
@ConditionalOnBean(SqlSessionFactory.class)
@EnableConfigurationProperties(PageHelperProperties.class)
@AutoConfigureAfter(MybatisAutoConfiguration.class)
public class PageHelperAutoConfiguration implements EnvironmentAware {
 //实现不一一列举
}

 

 16、@ConditionalOnClass
注解在类上,当classpath中存在指定的类,才运行此类,当上下文中不存在某个类,就运行该类
 17、@ConditionalOnMissingBean
判断上BeanFactory中是否存在某个bean,如果存在就执行创建该类,确保该来在指定类之后创建。
18、@Import
加载当前类,或者注解的时候 执行导入的类
19、@ImportResource
导入xml配置文件注解
20、@Profile
注解在类和方法上,根据上下文参数spring.profiles.active的值去加载对应的类或者配置
分享到:
评论

相关推荐

    spring注解大全

    spring注解大全

    Spring注解大全.docx

    Spring注解大全和解释 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上等

    spring注解大全整理.docx

    Spring 注解大全整理 Spring 框架提供了许多注解,用于简化配置和编程。这些注解可以分为多个类别,包括组件扫描、依赖注入、切面编程、事务管理、缓存、异步任务和计划任务等。 一、组件扫描 * @Controller:...

    Spring注解大全_spring应用层_spring注解大全_控制层注解_

    应用在MVC层(控制层)DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了RequestMapping的方法上。Service 组合注解(组合了@Component注解),应用在service层(业务逻辑层)

    Spring注解大全,常用,随时查看,学习

    常用的spring注解大全,适合新手学习、老手温故知新。读懂spring,平步青云。

    Spring 注解.xmind

    Spring注解大全,注解整理方式采用思维导图工具(XMind)整理,对注解按自己的方式进行了分类,并对所有的注解在备注中进行了解释说明;

    spring源码注释中文

    Spring 源码注释中文版的提供,使得开发者能够更加深入地理解 Spring 的工作原理,无需经过复杂的编译过程,可以直接阅读源码注释来学习。 Spring 框架主要由以下几个关键模块组成: 1. **Core Container(核心...

    Spring 注解 小例子

    Spring注解的主要目的是消除XML配置文件,使开发者能够通过在类或方法上直接添加注解来声明对象及其依赖关系。这个小例子将深入探讨Spring框架中的主要注解及其用法。 1. `@Component`、`@Service`、`@Repository` ...

    对Spring中注解怎么实现的一些基本原理

    本文将深入探讨Spring注解的基本原理,包括它们如何被解析、处理以及如何影响应用程序的生命周期。 首先,我们需要了解注解在Java语言中的本质。注解是一种元数据,允许程序员在源代码中嵌入信息,这些信息可以被...

    spring注解使用详解

    【Spring注解使用详解】 Spring框架自2.5版本开始,引入了注解配置,使得开发者可以在不依赖XML配置文件的情况下实现Bean的定义和依赖注入。注解配置因其简洁、直观的特点,逐渐成为主流的配置方式。在本文中,我们...

    Spring demo 自动检测注解

    在Spring框架中,自动检测注解(Autowired)是核心特性之一,它极大地简化了依赖注入的过程,使得开发者能够更加专注于业务逻辑,而不是繁琐的配置。本文将深入探讨Spring中的自动检测注解及其工作原理。 首先,`@...

    Spring注解注入属性

    ### Spring注解注入属性 #### 一、传统方式与注解方式对比 在Spring框架中,依赖注入(DI)是一种核心的设计模式,用于促进松耦合的系统设计,使得组件之间的依赖关系可以在运行时动态地建立,而不是在编译时硬...

    spring注解笔记

    ### Spring注解知识点详解 #### 1. Spring注解基础 在Spring框架中,注解是一种轻量级的依赖注入方式,能够简化配置并提高开发效率。在本节中,我们主要介绍几个Spring中常用的注解,它们分别是@Component、@...

    spring源码中英文注释

    这个压缩包文件中的"spring源码 中英文注释"为开发者提供了一个深入理解Spring框架内部工作原理的机会。通过阅读源码和注释,我们可以更清晰地了解Spring如何管理依赖注入、AOP(面向切面编程)、事务管理、上下文...

    spring源码(注释+测试版)

    这份"spring源码(注释+测试版)"提供了Spring框架的源代码,带有注释和测试用例,对于开发者深入理解Spring的工作原理非常有帮助。 1. **spring-core**:这是Spring框架的基础模块,包含了核心的工具类和资源处理...

    spring注解+spring data jpa文档+JPA文档.rar

    Spring注解是Spring框架中的一大特色,它极大地简化了配置过程,让代码更加简洁易读。注解如`@Component`、`@Service`、`@Repository`和`@Controller`用于标记不同层次的Bean,而`@Autowired`则负责自动装配Bean之间...

    spring 源码中文注释

    这份"spring 源码中文注释"包含了对Spring框架源码的详细解读,对于理解其工作原理、优化代码以及定制化开发具有重要意义。 首先,我们来看看Spring的核心组件——IoC容器。IoC容器是Spring的核心,它负责管理对象...

    Spring 注解 方式配制的小demo

    尽管我们无法直接访问这个链接,但我们可以基于常见的Spring注解配置实践来解释相关概念。 1. `@Component`:这是Spring中的基础注解,用于标记一个类为Spring管理的bean。它的子注解包括`@Service`、`@Repository`...

Global site tag (gtag.js) - Google Analytics