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

Spring常用的接口和类(一)

阅读更多

一、ApplicationContextAware接口

     在实现类注入ApplicationContext实例。代码展示如下:

public class Animal implements ApplicationContextAware, BeanNameAware{
	private String beanName;
	private ApplicationContext applicationContext;

	public void setBeanName(String name) {
		this.beanName = name;
	}
	
	/**
	 * @param applicationContext 该参数将由Spring容器自动赋值
	 */
	public void setApplicationContext(ApplicationContext applicationContext)throws BeansException {
		this.applicationContext = applicationContext;
	}

	public void run(){
		System.out.println(beanName);
		
		//发布自定义事件
		AnimalEvent event = new AnimalEvent(this, "老虎");
		applicationContext.publishEvent(event);
	}
}

 

     通过@Autowired注解可以自动装配一些常用对象实例:

@Autowired
private MessageSource messageSource; 

@Autowired
private ResourceLoader resourceLoader; 

@Autowired
private ApplicationContext applicationContext;

 

二、BeanNameAware接口

     在实现类注入当前bean在容器中的id/name。

 

     更多Aware接口:

             ApplicationEventPublisherAware:可获取ApplicationEventPublisher,用于发布事件

             BeanClassLoaderAware:注入加载该bean的ClassLoader

             BeanFactoryAware:将当前的beanFactory注入到该bean实例中

             BootstrapContextAware:

             EmbeddedValueResolverAware:

             EnvironmentAware:

             ImportAware:

             LoadTimeWeaverAware:可获取LoadTimeWeaver实例,用于在加载时处理类定义

             MessageSourceAware:可获取MessageSource实例

             NotificationPublisherAware:可获取JMX通知发布者

             ResourceLoaderAware:可获取Spring中配置的加载程序(ResourceLoader),用于对资源进行访问

             SchedulerContextAware:

             ServletConfigAware:用于获取ServletConfig

             ServletContextAware:用于获取ServletContext

 

三、ApplicationEvent抽象类

     当需要创建自定义事件时,可以新建一个继承自ApplicationEvent抽象类的类。代码展示如下:

/**
 * 自定义事件
 */
public class AnimalEvent extends ApplicationEvent {
	private String name;
	
	public String getName() {
		return name;
	}

	/**
	 * @param source 事件源对象
	 */
	public AnimalEvent(Object source){
		super(source);
	}
	
	public AnimalEvent(Object source, String name){
		super(source);
		this.name = name;
	}
}

 

四、ApplicationListener接口

     当需要监听自定义事件时,可以新建一个实现ApplicationListener接口的类,并将该类配置到Spring容器中。代码展示如下:

/**
 * 自定义事件监听器
 */
public class CustomEventListener implements ApplicationListener {
	public void onApplicationEvent(ApplicationEvent event) {
		if(event instanceof AnimalEvent){
			AnimalEvent animalEvent = (AnimalEvent)event;
			System.out.println("触发自定义事件:Animal name is " + animalEvent.getName());
		}
	}
}

 

<!-- 自定义事件监听器:Spring容器自动注册它 -->
<bean id="customEventListener" class="com.cjm.spring.CustomEventListener"/> 

 

     要发布自定义事件,需要调用ApplicationContext的publishEvent方法,具体用法请看Animal类的源码。

 

五、InitializingBean接口

      当需要在bean的全部属性设置成功后做些特殊的处理,可以让该bean实现InitializingBean接口。
      效果等同于bean的init-method属性的使用或者@PostContsuct注解的使用。
      三种方式的执行顺序:先注解,然后执行InitializingBean接口中定义的方法,最后执行init-method属性指定的方法。

 

六、DisposableBean接口
      当需要在bean销毁之前做些特殊的处理,可以让该bean实现DisposableBean接口。
      效果等同于bean的destroy-method属性的使用或者@PreDestory注解的使用。
      三种方式的执行顺序:先注解,然后执行DisposableBean接口中定义的方法,最后执行destroy-method属性指定的方法。

 

5
0
分享到:
评论

相关推荐

    spring常用jar包

    在Spring AOP中,如果目标类没有实现接口,CGLIB就会生成一个子类来实现对目标类的方法拦截。CGLIB也是许多其他Java库的依赖,如Hibernate。 4. commons-logging.jar:Apache Commons Logging是Java的日志抽象层,...

    普通javaweb项目调用springCloud接口(超级实用,很详细)

    ### 普通JavaWeb项目调用Spring Cloud接口详解 #### 前言 在现代软件开发中,微服务架构已成为构建大型复杂系统的主流选择之一。Spring Boot 和 Spring Cloud 作为构建微服务的重要工具,其易用性和强大的功能受到...

    发布webService服务接口与spring整合教程

    然后,创建一个实现此接口的类,使用WebServiceTemplate进行实际的Web Service调用。 ```java public interface YourWebService { YourResponseType callYourService(YourRequestType request); } @Service ...

    Spring 常用包

    Spring框架是Java开发中最常用的轻量级框架之一,它的核心在于IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。在本压缩包中,你可能会找到一系列与Spring相关的jar包,...

    spring最常用jar包

    以上只是Spring框架部分核心模块的简要介绍,每个模块都包含了大量的类和接口,它们共同构成了一个强大且灵活的开发平台,帮助开发者高效地构建复杂的企业级应用。通过理解并熟练掌握这些jar包中的知识点,开发者...

    Java spring boot 接口工程

    在Spring Boot中,我们可以使用`@RestController`注解来标识一个类作为REST控制器,`@RequestMapping`和`@GetMapping`、`@PostMapping`等注解用于定义URL映射,从而轻松实现API接口的创建。 此外,Spring Boot还...

    SpringCloud微服务接口这么多怎么调试

    本文来自程序猿,本文主要介绍了SpringCloud微服务下服务接口调试及管理,什么样方式可以让微服务的接口管理变得更加容易些...而有些微服务则会提供一些公共性质的服务接口,如短信接口统一认证接口之类。而这些微服务往

    spring 常用的26个包

    5. `org.springframework.asm`:这个包包含了对ASM库的封装,用于动态生成Java类和接口,通常用于AOP代理的实现。 6. `org.springframework.aspects`:这个包包含了与AspectJ集成的相关类,使得Spring可以支持更...

    spring-aware接口实现与bean作用域(spring多容器层面)

    `ApplicationContextAware`是其中的一个典型接口,当我们想要在非托管类(即非Spring Bean)中获取Spring容器中的其他Bean时,可以使用这个接口。 `ApplicationContextAware`接口提供了`setApplicationContext`方法...

    CXF整合spring实现SOAP接口开发

    6. **CXF_Spring中的示例**:在提供的压缩包文件"CXF_Spring"中,可能包含了示例代码、配置文件以及相关文档,用于演示如何整合CXF和Spring进行SOAP接口开发。通过研究这些示例,开发者可以更好地理解和实践上述知识...

    CXF+spring+restful创建一个web的接口项目源代码

    在本项目中,我们利用Apache CXF、Spring框架和RESTful风格来构建一个Web服务接口。这个源代码示例展示了如何将这三种技术融合在一起,为开发者提供了一种高效、灵活的方式来开发分布式应用程序。 首先,Apache CXF...

    SpringJdbcTemplate封装工具类

    这个封装工具类的出现是为了提供一种更简洁、易于使用的接口来执行SQL操作,减轻开发者处理数据库连接、事务管理以及异常处理的负担。下面我们将深入探讨SpringJdbcTemplate的相关知识点。 1. **SpringJdbcTemplate...

    基础java spring boot 接口项目

    在Spring Boot中,我们可以使用`@RestController`注解来创建RESTful API,这是一个结合了@Controller和@ResponseBody的注解,表示该类将处理HTTP请求并返回JSON或XML响应。 对于GET接口,我们可以使用`@GetMapping`...

    spring的几个重要类和接口(详解)

    Spring 框架是一个功能强大且广泛使用的 Java 应用程序框架,它提供了许多重要的类和接口来帮助开发者快速构建企业级应用程序。下面我们将对 Spring 框架中的几个重要类和接口进行详细解析。 1. DataSource 接口 ...

    spring boot查询接口

    {"code":200,"data":[{"age":12,"name":"12","sex":"男","username":"张三","userpassword":"123"},{"age":22,"name":"12","sex":"女","username":"李白","userpassword":"4576"}]}

    SpringCloud微服务接口查询Demo

    在"压缩包子文件的文件名称列表"中提到的`test`可能是测试相关的文件,如测试类、配置文件或模拟数据,它们用于验证接口查询功能的正确性和性能。 综上所述,SpringCloud微服务接口查询Demo涵盖了微服务架构中的多...

    使用spring远程调用服务端接口实现WebService功能

    然后,在Spring配置文件中,你需要配置HttpInvokerServiceExporter,指定要导出的服务bean和接口: ```xml &lt;bean id="httpInvokerExporter" class="org.springframework.remoting....

    spring2.5常用包

    Spring 2.5 是 Spring 框架的一个重要版本,它在之前的版本基础上引入了许多增强功能和改进,为开发者提供了更强大的工具集。这个压缩包包含的“spring常用包”很可能是为了帮助开发者理解并使用 Spring 2.5 的核心...

    spring+mybatis+springmvc以及mysql写的一个登录接口

    在这个登录接口中,Spring MVC可能包含一个Controller类,该类处理登录请求,调用服务层进行验证,最后返回登录结果。 4. **MySQL**:MySQL是一个流行的开源关系型数据库管理系统,用于存储和检索数据。在这个登录...

    cxf+spring接口实例

    本教程将通过一个具体的"CXF+Spring接口实例"来探讨如何使用这两种技术实现Web服务并进行测试。 首先,让我们理解CXF的核心功能。CXF允许开发者使用Java编程语言来实现Web服务接口,这被称为Java API for RESTful ...

Global site tag (gtag.js) - Google Analytics