`
Luob.
  • 浏览: 1588701 次
  • 来自: 上海
社区版块
存档分类
最新评论

spring 第8天 Spring 注解

阅读更多
spring注解
@Component:标注一个普通的spring bean类
@Controller:标注一个控制器组件
@Service:标注一个业务逻辑组件
@Reponsitory:标注一个DAO组件

@Scope:配置bean的作用域不配置 默认为 singleton
@DependsOn({"aa"}):可以修饰bean和方法,表示在操作前 ,先初强制初始化 aa bean
@Lazy(false) :修饰bean类,用于指定该bean是否执行预初始化行为 默认为false :表示会执行初始化
@Autowired:可以修饰Field setter方法,普通方法,自动注入,默认采用byType注入
@Qualifier:精确的自动装配:可以修饰Field,setter方法,普通法方法,必须和@Autowired 一起使用,否则不会将找到的bean初始化后,赋值给属性.


package annotation.model.impl;

import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import annotation.model.interfaces.Axe;
import annotation.model.interfaces.Dog;
import annotation.model.interfaces.Person;

@Component
public class Japanese implements Person {

	//定义一个方法
	@Autowired
	@Qualifier("steelAxe")
	public Axe axe;
	
	@Autowired
	public Dog dog;
	
	
	@Autowired  // 会找到所有的Axe 类型然后天津到 数组中
	private Axe[] axes;
	
	private Set<Axe> saxe;
	
	public Set<Axe> getSaxe() { 
		return saxe;
	}

	@Autowired  //如果 不指定  集合的类型 spring 将不知所措
	public void setSaxe(Set<Axe> saxe) {
		this.saxe = saxe;
	}

	public Axe getAxe() {
		return axe;
	}

	/**
	 * 如果发现 这一类型的 有多个Bean 会出现异常
	 * @param axe
	 */
	@Autowired   //找到 类型为Axe 的后,会自动注入, 默认采用 byType自动装配 
	public void setAxe(@Qualifier("stoneAxe") Axe axe) {
		System.out.println("bb");
		this.axe = axe;
	}

	@Autowired  //多个参数的普通方法
	public void prepare(@Qualifier("steelAxe") Axe axe,Dog dog){
		System.out.println("ss");
		this.axe=axe;
		this.dog=dog;
	}
	
	@Override
	public void useAxe() {
		System.out.println("正在使用"+getAxe()+"劈柴");
		System.out.println(getAxe().chop());
	}
	
	
	public void life(){
		dog.sound();
	}

	public Dog getDog() {
		return dog;
	}

	public Axe[] getAxes() {
		return axes;
	}

	public void setDog(Dog dog) {
		this.dog = dog;
	}

	public void setAxes(Axe[] axes) {
		this.axes = axes;
	}
	
	
}

  <context:component-scan base-package="annotation">
   		<!--  
   		type: 有4种类型  annotation assignable regex aspectj
   		-->
   		<!-- 包含下面结尾的类 -->
   		<context:include-filter type="regex" expression=".*Chinexe"/>
   		<context:include-filter type="regex" expression=".*Axe"/>
   		<context:include-filter type="assignable" expression="annotation.resources.TestBean"/>
   		
   		<!-- 不包含下面包下的所有类 -->
   		<context:exclude-filter type="regex" expression="annotation.model.interfaces.*"/>
   </context:component-scan>

ApplicationContext act=null;
	@Before
	public void init(){
		act=new ClassPathXmlApplicationContext("classpath:applicationContent_anno.xml");
	}

//测试 自动 注入 和精确注入  Autowired  Qualifier 
	@Test
	public void test1(){  // setMethod  > generalMethod(普通方法) > Field 
//输出spring中所有bean 的实例名称 
System.out.println(Arrays.toString(act.getBeanDefinitionNames()));
		Japanese j=act.getBean("japanese",Japanese.class);
		j.useAxe();
		j.life();
		System.out.println(Arrays.toString(j.getAxes()));
		
	}


定制Bean的生命周期行为
@PostConstruct :修饰 bean找那个init-method,和配置文件中init-menthod作用一样
@PreDestory:修改bean中的close方法 和配置文件中的属性 destory-method作用一样



	@PostConstruct  // 和 init-method 方法一样
	public void init(){
		System.out.println("PostConstruct: init-method:正在初始化....");
	}
	
	@PreDestroy  //和 destory-method 方法一样
	public void destroy() throws Exception {
		System.out.println("@PreDestroy:destory-method:注解,即将被销毁...");
	}
	
分享到:
评论
2 楼 Luob. 2014-08-17  
chenzheng8975 写道
哈哈 顶起来

没有什么好顶的,没有发布到社区 里面去,主要是给自己看 呵呵
1 楼 chenzheng8975 2014-08-17  
哈哈 顶起来

相关推荐

    Spring第一天.pdf

    ### Spring框架概述与环境搭建 #### 一、Spring框架简介及官方压缩包目录介绍 - **发明者**:Spring框架的主要发明者为Rod Johnson。 - **轮子理论**:Spring框架推崇“轮子理论”,即避免重复发明已有的组件或...

    spring_in_action-sixth-edition.pdf

    "Spring 实战第六版" Spring Framework 是一个广泛使用的 Java 应用程序框架,它提供了一个通用的编程模型和配置机制,帮助开发者快速构建企业级应用程序。下面是对 Spring Framework 的详细知识点总结: 1. 什么...

    Spring第二章Spring第二章Spring第二章

    在"Spring第二章"中,我们将深入学习Spring框架的核心概念、主要功能以及如何在实际项目中使用它们。 首先,我们要理解什么是依赖注入。依赖注入是Spring框架的一个关键特性,它允许我们解耦组件间的依赖关系。通过...

    spring-security注解开发

    在本主题中,我们将深入探讨"spring-security注解开发",这是Spring框架的一个重要组成部分,特别是在构建安全的Java Web应用程序时。Spring Security提供了一种强大而灵活的方式来管理和保护应用程序的资源,而注解...

    spring2.0升级到spring3.0.5的开发包

    9. **测试框架增强**:Spring 3.0的测试支持更加完善,包括对Mockito等第三方库的集成,使得单元测试和集成测试变得更加容易。 10. **更多模块**:Spring 3.0.5包含了多个模块的更新,例如`org.springframework....

    spring培训第二天

    在“spring培训第二天”的课程中,我们深入学习了Spring框架的核心概念和关键功能。作为一款广泛应用的Java企业级开发框架,Spring以其强大的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...

    Spring框架2016版黑马程序员第三天相关的资料

    8. **Spring Batch**:针对批量处理任务,Spring Batch提供了一套完整的解决方案,包括读取、处理和写入大量数据。 9. **笔记**:学习资源中的笔记可能涵盖了上述概念的讲解,以及黑马程序员对这些概念的独特见解和...

    SpringiA4_SourceCode:Spring实战第四版源码,学习用。

    《Spring实战第四版》是Java开发领域中一本深入讲解Spring框架的经典著作,源代码的提供为读者提供了亲自动手实践的机会,有助于加深理解和应用。在这个压缩包中,包含的文件名为"spring4源码_Code4",我们可以推测...

    第十八章 Spring 注解(Annotations)1

    了解这些核心概念后,开发者可以充分利用Spring注解驱动编程的便利性,减少XML配置,提升开发效率。同时,掌握Spring的元注解和模式注解,可以更好地定制化和扩展框架功能,满足特定项目需求。对于Spring框架的学习...

    Spring攻略(第二版)书籍源码

    《Spring攻略(第二版)书籍源码》是一个深入学习Spring框架的重要资源,它包含了作者在编写书籍过程中所使用的完整代码示例。这份源码旨在帮助读者更好地理解和实践Spring框架的各种功能和最佳实践。 Spring框架是...

    spring in action 第二版中文版

    8. **版本更新**:第二版针对Spring框架的最新版本进行了更新,确保读者可以学习到最新的特性和改进。 总之,《Spring in Action》第二版中文版是一本全面而实用的Spring教程,无论你是初学者还是有经验的开发者,...

    传智播客2016spring资料4

    标题“传智播客2016spring资料4”揭示了这是一份关于Spring框架的教育资料,特别关注的是2016年传智播客教学课程中的第四天内容。传智播客是一家知名的IT教育机构,其课程通常深入浅出,适合初学者和有一定经验的...

    Spring in Action 第四版英文原版+源码

    《Spring in Action》第四版是关于Spring框架的一本权威指南,由Manning出版社出版。这本书深入浅出地介绍了如何使用Spring框架构建强大的Java应用程序。英文原版提供了最原始的作者见解和技术细节,对于想要深入...

    spring第一个例子

    在"spring第一个例子"中,我们将创建一个简单的Spring应用程序。这个例子通常包括以下步骤: 1. **配置Spring**:首先,我们需要创建一个Spring的配置文件,例如`applicationContext.xml`。在这个文件中,我们会...

    Spring框架黑马程序员的2016版第二天的相关的资料

    在“第二天”的学习内容中,我们通常会涉及以下几个关键知识点: 1. **Spring概述**:首先,我们会了解Spring的基本概念和历史背景,以及它如何在Java生态系统中占据重要地位。Spring的主要优势在于其模块化设计,...

    Spring in Action 中文版 pdf

    8. **测试**:Spring提供了一套强大的测试工具,包括单元测试、集成测试。书中会介绍如何编写和执行这些测试,以确保代码质量。 9. **Spring Security**:Spring Security是Spring生态系统的安全模块,用于身份验证...

    Spring4.X教学视频

    8. **测试支持**:Spring提供了丰富的测试支持,包括单元测试和集成测试。学习如何使用Mockito、Spring Test和JUnit进行测试是非常重要的。 9. **Spring Batch**:对于批量处理任务,Spring Batch提供了一个全面的...

    spring mvc + spring + hibernate 全注解整合开发视频教程 08

    这个系列教程的第八部分可能深入讲解了在实际项目中如何运用这些框架的注解来简化配置,提升开发效率。 【描述】中的信息虽然简洁,但暗示了该视频可能涵盖了以下几个关键知识点: 1. **Spring MVC**:作为Spring...

    SpringBoot+SpringCloud面试题.doc

    - `mybatis-spring-boot-starter`:第三方提供的MyBatis集成Starter。 11. **启动时执行特定代码** - 实现`ApplicationRunner`或`CommandLineRunner`接口,这两个接口的`run`方法会在Spring Boot应用启动后运行。...

    spring第二天.pdf

    【Spring框架核心概念详解】 在Spring框架中,IoC(Inversion of Control,控制反转)是核心设计理念之一,它通过管理对象(Bean)的生命周期和依赖关系,将控制权从应用代码转移到框架。BeanFactory和...

Global site tag (gtag.js) - Google Analytics