Spring IOC配置与应用
1. FAQ:不给提示:
a) window – preferences – myeclipse – xml – xml catalog
b) User Specified Entries – add
i. Location: D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\spring-beans-2.5.xsd
ii. URI: file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd
iii. Key Type: Schema Location
iv. Key: http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
2.注入类型
b) setter(重要),另外两种基本没用
c) 构造方法(可以忘记)
d) 接口注入(可以忘记)
3.<bean中的 id vs. name
a) name可以用特殊字符,id里面不能写特殊字符
4. 简单属性的注入(需要在beans.xml中配置)
a) <property name=… value=….>
5. <bean 中的scope属性,常用的取值有singleton和proptotype
a) <bean中的scope属性默认是Sinleton,说明bean默认情况是单例
b) singleton 单例
c) proptotype 每次创建新的对象
6. 集合注入
a) 很少用,不重要!参考程序
7. <bean id="..." class="..." autowire="byName"> 自动装配(默认的为no),常用的自动装配有2种
b) byName :按名字来自动装配
c) byType :按类型来自动装配,但是如果同样的类型有2个的话,就会报错。
区别:byName与byType
8. 生命周期
a) <bean id="..." class="..." lazy-init="">(不重要)容器初始化时,lazy-init =“true”的bean不用初始化
b) <bean id="..." class="..." init-method="init" destroy-methd="destroy"> init-method(当容器初始化时调用bean中这个方法),destroy-methd(容器关闭时调用bean中的这个方法,在Java应用程序中并不会调用该方法,只有在web应用程序中才会调用该方法)。 不要和prototype一起用(了解),不会执行destroy方法,因为像这个ClassPathXmlApplicationContext它不会监控protoType的死亡,所以不会执行destroy
9. Annotation第一步:
总结:如果你想用annotation的话
1.加入新的命名空间:
xmlns:context="http://www.springframework.org/schema/context"
2.向schemaLocation中添加
http://www.springframework.org/schema/context和
http://www.springframework.org/schema/context/spring-context-2.5.xsd
3.声明:<context:annotation-config />说明你程序中用了annotationl来注入的,如果用xml,则不需声明
a) 修改xml文件以支持annotation,参考文档<context:annotation-config />
10. 1.Xml:autowire=””
2.Annotation:@Autowired(spring自己定义的,使用并不多,还有更好方法代替)
a) 默认按名字(根据setters方法的参数名)来注入。如果没找到,会按类型来注入。
b) 在按类型注入时,如果是同一个类型的bean有2个,就会报错。解决:搭配@Qulifier使用,指定注入2个之中的那个bean
b) 写在private field(第三种注入形式)(不建议,破坏封装)。我们一般写在setters上面
c) 搭配@Qulifier使用,指定注入那个bean。@Qulifier既可以写在方法上面,也可以写在参数里面
11. @required:在bean初始化的时候你必须给注入,你要是不给它注入,就不对了。这东西就是容错用的,这东西跟我们以前讲过的注解@override非常类似,@override写不写都没关系,打不了运行时,jvm检查到底有没有重写。但是我们为什么要写@override呢?调试错的时候应该是尽早发现错误,如果你写了@override,那么它就会在编译期间发现错误。写@required时候,编译时就会发现错误
12. @Resource(重要:是j2ee定义的标准,所以要引入J2ee中的annotation)
@Resource是j2ee中定义的标准,所以要引入j2ee中的annotation
a) 加入:j2ee/common-annotations.jar
b) 默认首先按名称,名称找不到时才会按类型。(这个可能根据你使用的spring版本不同会有差别,也可能默认按类型注入)
c) @Resource默认按参数名称自动匹配注入,如果没找到对应的参数名称再按类型
d) 可以指定特定名称
e) 推荐使用
f) 不足:如果没有源码,就无法运用annotation,只能使用xml
<context:component-scan base-package="">用了这句话的话,对于配置文件中bean都不用写了,spring自动帮你到base-package=""自定包中找
13. @Component @Service @Controller @Repository
a).@Component必须与<context:component-scan base-package="org.springframework.docs.test" />
一起用,用于指定那些包中应用程序加了@Component的
b) 初始化的名字默认为类名首字母小写
c) 可以指定初始化bean的名字
14. @Scope(“singeton”)
15. @PostConstruct = init-method; @PreDestroy = destroy-method;
相关推荐
**Spring Ioc 实现原理详解** Spring Ioc(Inversion of Control,控制反转)是Spring框架的核心特性之一,它改变了传统应用程序中对象的创建和管理方式。在传统的软件设计中,对象的创建和依赖关系的维护通常由...
SpringIOC是Spring Framework中的核心组件之一,负责管理应用程序中的对象、依赖关系和生命周期。 在 Spring IOC 中,对象的创建和管理是通过 BeanFactory 或 ApplicationContext 实现的。BeanFactory 是 Spring ...
springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC...
spring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demo...
Spring 框架是Java开发中的核心框架,它主要由两个关键部分组成:IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。这两个概念是Spring框架的核心特性,极大地简化了企业...
Spring IoC 加载流程讲解 在本节中,我们将对 Spring IoC 加载流程进行详细的讲解,并探讨 IoC 思想和依赖倒置原则的应用。 IoC 控制反转 IoC(Inversion of Control)是指在软件设计中,将对象实例的控制权从...
2. **依赖注入(DI)**:Spring IOC的主要功能之一就是依赖注入。有两种方式实现DI:构造器注入和setter注入。构造器注入是在Bean实例化时通过构造函数传递依赖,而setter注入则是通过调用setter方法设置依赖。在`...
spring Ioc容器配置 IOC容器数据源配置 <!-- 配置数据源 --> destroy-method="close"> <value>org.gjt.mm.mysql.Driver <value>jdbc:mysql://localhost:3306/demo <value>root ...
Spring 中 IoC 优点与缺点解析 IoC(Inversion of Control)是 Spring 框架中的一种设计模式,它的主要思想是将对象的创建和管理交给容器,从而解耦合对象之间的依赖关系。今天,我们将详细解析 IoC 的优点和缺点。 ...
Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性之一,它允许开发者将对象的创建和管理交给Spring容器来处理,从而使代码更加松耦合,更易于测试和维护。下面将详细介绍Spring IOC的基本概念、...
标题 "Spring IOC" 描述了我们讨论的核心主题——Spring 框架中的依赖注入(Inversion of Control,简称 IOC)机制。Spring 是一个广泛应用的 Java 应用开发框架,其核心特性之一就是IOC,它极大地简化了软件组件...
2. **Bean的定义与管理**:在Spring中,我们使用XML配置文件或者基于注解的方式定义Bean。Bean定义包含了类名、初始化方法、依赖关系等信息。Spring容器根据这些定义来创建和管理Bean。例如,在`Spring-IOC示例.doc`...
2. **setter注入**:通过setter方法来设置依赖对象,Spring容器会在对象创建后调用setter方法注入依赖。这种方式更符合JavaBean规范,使得对象可以在无依赖的情况下被实例化,但在使用前需要注入依赖。 3. **接口...
2. 配置Spring的IoC容器,如创建applicationContext.xml文件,并在其中配置Bean,比如定义一个数据访问对象(DAO)或服务层对象(Service)。 3. 在Java代码中利用Spring的依赖注入特性,例如使用@Autowired注解来...
Spring框架是Java开发中不可或缺的一部分,它通过提供两种核心特性——控制反转(IoC)和面向切面编程(AOP)来简化应用的构建。理解并掌握这两种技术对于任何Java开发者来说都至关重要。 **控制反转(IoC)**,也...
2. `spring-context.jar`: 这个包扩展了`spring-beans.jar`,引入了上下文的概念,提供了更丰富的功能,比如事件发布、国际化、资源访问等。同时,它也支持通过Java注解来配置Bean,使代码更加简洁。 3. `spring-...
标题《Spring IoC源码深度剖析开源架构源码2021.pdf》和描述《Spring IoC源码深度剖析开源架构源码2021.pdf》表明该文档主要面向于分析Spring框架中控制反转(IoC)容器的核心源码,解析和理解其内部的工作机制及...
Java反射和Spring IOC是Java开发中的两个重要概念,它们在构建灵活、可扩展的应用程序时起着关键作用。本文将深入探讨这两个主题,并提供相关的学习资源。 首先,让我们了解一下Java反射。Java反射机制是Java语言的...
**Spring 的 IoC 容器** IoC(Inversion of Control)即控制反转,是 Spring 的核心特性之一。在传统的编程模式中,对象之间存在依赖关系,程序员需要手动创建和管理这些对象。而在 Spring 中,IoC 容器负责管理和...
在Spring框架中,依赖注入(Inversion of Control, IoC)和面向切面编程(Aspect Oriented Programming, AOP)是两大核心特性。本篇将深入探讨如何通过注解方式来模拟Spring的这两种机制,帮助你理解其底层原理。 #...