- 浏览: 165473 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (116)
- 随笔 (2)
- spring (24)
- struts (1)
- hibernate (6)
- log4j (0)
- mysql (14)
- oracle (0)
- ext (0)
- jQuery (0)
- HTML+CSS (2)
- Javascript (1)
- 其它杂碎 (0)
- IT (3)
- J2EE综合 (15)
- SQLServer (1)
- 好文章URL 待阅读 (3)
- 编辑器 (2)
- 版本控制 (5)
- Tomcat (4)
- DoJo (0)
- Ubuntu (11)
- Hadoop (3)
- cxf (3)
- maven (6)
- CI (5)
- H2 (1)
- JVM (1)
- FirefoxOS (1)
- Jboss (1)
- 操作系统 (1)
- C3P0 (2)
- Quartz (1)
- maps (10)
- 设计模式 (5)
最新评论
-
yogurt2012:
请问··我如果要调试H2数据库来分析其JOIN算法应该怎么做呢 ...
H2笔记 -
carlosfu:
很好很全,很有收获
Spring3笔记之 JDBC -
ponlya:
coldrush 写道看了你的配置 ,刚绝 file:后加绝对 ...
添加使用dtd文件 -
ponlya:
byp19980911 写道这不是很好的解决办法,最好是使用连 ...
java.net.SocketException:Software caused connection abort: socket write error -
ponlya:
ayanami001 写道为什么spring没有封装分页吗,那 ...
Spring3笔记之 JDBC(分页)
Bean:在Spring中,那些组成你应用程序的主体(backbone)及由Spring IOC容器所管理的对象,被称之为bean。 简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。 而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。 org.springframework.beans.factory.BeanFactory是Spring IoC容器的实际代表者,IoC容器负责容纳此前所描述的bean,并对bean进行管理,包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。 Spring IoC容器可以通过多种途径来加载配置元数据,比如本地文件 系统、Java CLASSPATH等(貌似URL也行)。 Spring3之 IoC容器的实例化 Spring IoC容器的实例化非常简单,可以用ClassPathXmlApplicationContext or FileSystemXmlApplicationContext类来完成,AnnotationConfigApplicationContext也可以用注解来完成。 a).XML式 包名:com.spring305.test.iocInstance 文件列表:BeanA.java,BeanB.java,IocInstance.java,IocInstanceA.xml,在此包下有一包temp,另有一份测试配置文件IocInstance.xml 代码如下: BeanA.java
BeanB.java
public class BeanA {
private int id;
private String name;
public BeanA() {
}
public BeanA(int id, String name) {
super();
this.id = id;
this.name = name;
}
public void testMethod(){
System.out.println(BeanA.class);
}
setter,getter
}
public class BeanB { private int id; private String name; public BeanB() { } public BeanB(int id, String name) { super(); this.id = id; this.name = name; } public void testMethod(){ System.out.println(BeanB.class); } ...getter,setter }
IocInstanceA.xml
<!-- 下面是引用XML的路径及写法注释,使用时只保留一个,并且对应相应路径 --> <!-- 这二种表示这个引入的文件要与本XML文件在同一级目录中 <import resource="IocInstance.xml"/> <import resource="/IocInstance.xml"/> 下面二种表示在当前XML目录中temp文件夹下面 <import resource="temp/IocInstance.xml"/> <import resource="/temp/IocInstance.xml"/> --> <!-- 这下面的一个是相对路径的书写方式,引入根目录下的XML文件, <import resource="../../../../IocInstance.xml"/> --> <!-- classpath:这种方式可以使用但是,在spring3的英文文档中并不推荐使用,推荐使用用../到父目录中或者/到下级目录来找,因为classpath:可能在部署的时候引向不正确的目录 <import resource="classpath:IocInstance.xml"/> --> <!-- 下面的这种方式也是可以的,但是,也不被推荐,原因同上,如果采用这二种情况,spring3建议把路径写上,然后用${}来引入 --> <import resource="file:D:/workspace/MyEclipseSSH/Spring305/src/IocInstance.xml"/> <bean id="beanA" class="com.spring305.test.iocInstance.BeanA"></bean>
src目录下IocInstance.xml ,主要是用来测试从一个XML文件引入另外一个文件来实例化的,它和temp包下的IocInstance.xml的内容一样也只有beanB这个bean,后者主要是用来测试路径的。
IocInstance.xml
<bean id="beanB" class="com.spring305.test.iocInstance.BeanB"></bean>
测试类:
IocInstance.java
b).Annotaion式 BeanAAnnotaion.java import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class IocInstance {
@Test//annotation实例化容器
public void TestIocInstanceAnnotation(){
ApplicationContext atx = new AnnotationConfigApplicationContext(BeanAAnnotaion.class);
//下面的Bean名是类的名字,首字母小写
//BeanAAnnotaion a = (BeanAAnnotaion)atx.getBean("beanAAnnotaion");
//下面是自己在类中用@bean定义的bean
//BeanAAnnotaion a = (BeanAAnnotaion)atx.getBean("getBeanAAnnotation");
//System.out.println(a.getMsg());
//下面的是定义的一个返回类型为String类型的bean
String getMsg = atx.getBean("getMsg",String.class);
System.out.println(getMsg);
}
//@Test//XML实例化容器
public void TestIocInstanceXML(){
//加载1到N个XML文件 ,文件前加与不加'/',代表的都是src目录下的文件
//ApplicationContext atx = new ClassPathXmlApplicationContext("IocInstance.xml");
//ApplicationContext atx = new ClassPathXmlApplicationContext(new String[]{"IocInstance.xml"});
//ApplicationContext atx = new ClassPathXmlApplicationContext(new String[]{"IocInstance.xml","IocInstance2.xml"});
//ApplicationContext atx = new ClassPathXmlApplicationContext(new String[]{"/IocInstance.xml"});
//BeanB a = (BeanB)atx.getBean("beanB");
//a.testMethod();
//XML配置在com...包下,则可以如下书写
//ApplicationContext atx = new ClassPathXmlApplicationContext(new String[]{"/com/spring305/test/iocInstance/IocInstanceA.xml"});
//ApplicationContext atx = new ClassPathXmlApplicationContext(new String[]{"com/spring305/test/iocInstance/IocInstanceA.xml"});
//下面也可以用FileSystemXmlApplicationContext来加载XML文件,这里要写文件的绝对位置
ApplicationContext atx = new FileSystemXmlApplicationContext(new String[]{"file:D:/workspace/MyEclipseSSH/Spring305/src/com/spring305/test/iocInstance/IocInstanceA.xml"});
//ApplicationContext接口实现了BeanFactory接口
BeanFactory factory = atx;
//BeanA a = (BeanA)atx.getBean("beanA");
//下面的一种得到bean的方式,不用进行和以前一样写强制转换
BeanA a = atx.getBean("beanA",BeanA.class);
a.testMethod();
}
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class BeanAAnnotaion {
@Bean
public BeanAAnnotaion getBeanAAnnotation(){
return new BeanAAnnotaion();
}
@Bean
public String getMsg(){
return BeanAAnnotaion.class.toString();
}
}
发表评论
-
Spring整合Hibernate(摘录)
2011-05-07 09:48 749简要步骤From:http://blog.csdn.net/s ... -
Spring3笔记之 JDBC(分页)
2011-04-25 22:08 2022接上篇的实体,DAO接口,实现,测试及XML http://p ... -
Spring3笔记之 JDBC
2011-04-25 22:02 7821使用Spring 的JDBC 先创建表: DROP TAB ... -
Spring3笔记之 事务传播
2011-04-24 15:51 1216摘自:http://zhxing.iteye.com/blog ... -
Spring3笔记之 AOP
2011-04-24 14:24 1908Spring AOP部分使用JDK动态代理或者CGLIB来为目 ... -
Spring3笔记之 AOP Cglib 代理
2011-04-24 14:13 1362JDK的Proxy实现代理要求 ... -
Spring3笔记之 AOP JDK 代理
2011-04-24 14:09 1060使用JDK代理,代理对象必须实现一接口 com.spring ... -
Spring3之 Resource
2011-04-21 22:49 3982主要是org.springframework.core.io. ... -
Spring3之 bean 注解
2011-04-20 22:18 1509小记下,spring注解相关: com.spring305. ... -
Spring3之 bean 定制bean特性
2011-04-19 21:10 1301Customizing the nature of a bea ... -
Spring3之 bean 作用域scope
2011-04-18 22:21 1463Bean scopes 作用域 5个:singleton,p ... -
Spring3之 bean Method injection
2011-04-17 20:04 1463Method injection(方法注入) bean都是s ... -
Spring3之 bean AutoWire
2011-04-17 12:01 5945Autowiring collaborators 自动装配 ... -
Spring3之 bean depends-on
2011-04-17 08:56 3289depends-on depend-on用来表 ... -
Spring3之 bean Lazy-initialized beans
2011-04-17 08:48 1973Lazy-initialized beans延迟 ... -
Spring3之 集合对象属性注入
2011-04-16 23:17 1214com.spring305.test.beanInit.cpo ... -
Spring3之 bean idref?
2011-04-16 18:39 973很是奇怪idref是干什么 ... -
Spring3之 bean简单属性注入
2011-04-16 17:40 1370DI (依赖注入)有二种: Constructor-based ... -
Spring3之 实例化bean2
2011-04-16 14:30 1021Spring3之 bean命名(http://ponlya.i ... -
Spring3之 bean命名
2011-04-16 11:36 2013一、bean的命名采用标准Java命名约定:小写字母开头,首字 ...
相关推荐
而控制反转则是将这种控制权交给外部容器(如Spring的IoC容器),由容器来负责实例化、配置和管理组件之间的关系。 ##### 2.2 依赖注入的实现方式 依赖注入(Dependency Injection,DI)是实现控制反转的一种常用...
**Spring IOC 容器应用实例** Spring 框架的核心组件之一是 Inversion of Control (IoC) 容器,也常被称为依赖注入(Dependency Injection)容器。IoC 是一种设计模式,它将对象的创建和管理从应用程序的业务逻辑中...
2. Bean的实例化:当需要使用某个Bean时,IOC容器会根据Bean的定义创建实例。可以是单例模式,也可以是多例模式。 3. 依赖注入:在实例化Bean的过程中,容器会根据定义的依赖关系,将其他Bean注入到当前Bean中,...
而注解自动装配(Autowired)是Spring IoC容器的一种高级特性,它允许我们通过注解来声明对象之间的依赖,无需手动编写XML配置。现在,我们将深入探讨如何模拟Spring的IoC容器实现注解自动装配。 首先,我们需要...
在Java Spring框架中,Spring IoC(Inversion of Control,控制反转)是核心特性之一,它使得应用程序的组件之间的依赖关系不再由代码直接管理,而是交由Spring IoC容器负责。这种设计模式降低了代码间的耦合,提高...
本项目"手写一个SpringIoc容器"旨在模仿Spring的IOC(Inversion of Control,控制反转)功能,帮助开发者深入理解Spring的工作原理,提升对依赖注入(Dependency Injection)模式的认识。 在实现自定义的Spring IOC...
在Spring中,IoC容器通过配置元数据(如XML、注解或Java配置类)来定义对象及其依赖关系,然后在运行时根据这些信息实例化对象并进行依赖注入。 ### 2. 容器的主要功能 - **对象的实例化**:IoC容器可以创建对象,...
Spring IoC容器是Spring框架的核心,它负责管理应用对象的生命周期和依赖关系。通过对IoC(Inversion of Control,控制反转)的实现,Spring容器将对象的创建和组装工作从应用代码中分离出来,使得应用更易于测试和...
Spring容器通过反射机制实例化对象,解析并注入依赖。这样的设计允许我们轻松地更改对象的行为,只需调整配置,无需修改代码。 接下来,让我们看看Spring的IoC容器有哪些优点: 1. **松耦合**:由于对象的创建和...
IOC容器是Spring Framework的核心组件之一,负责管理应用程序中的对象实例,控制对象的生命周期,并提供依赖注入的功能。 IOC容器的主要功能是控制反转和依赖注入。控制反转是指将对象的控制权从程序员手中反转给...
在Spring源代码解析的第一部分,我们将聚焦于IOC容器,特别是BeanFactory接口,它是所有Spring容器的基础。 BeanFactory接口是Spring的基石,它定义了基本的容器操作,如获取Bean、检查Bean是否存在、确定Bean的...
Spring容器负责实例化这两个bean,并自动将`dependencyBean`注入到`exampleBean`中。 另一方面,注解DI允许我们在类上使用如`@Component`、`@Service`、`@Repository`和`@Controller`来标记它们为Spring管理的bean...
Spring Ioc容器是整个Spring框架的基石,它负责创建、配置和管理对象。容器通过读取XML、Java注解或Java配置类等方式,获取对象的定义信息,然后根据这些信息实例化对象并进行依赖注入。 **三、依赖注入(DI,...
以下是Spring IOC容器的主要知识点: 1. **Bean的定义**:在Spring中,业务对象被称为Bean。Bean定义包含了创建和管理Bean的所有信息,如类名、属性值、依赖关系等,通常通过XML、注解或Java配置来定义。 2. **...
使用Spring的`ApplicationContext`来加载配置文件并启动IoC容器。以下是如何加载并获取`Bean`的示例: ```java ApplicationContext context = new ClassPathXmlApplicationContext("SpringTest1.xml"); ...
至于“工具”标签,可能意味着博主分享了如何在实际项目中使用Spring IoC容器,或者介绍了一些与之相关的工具和技巧,比如使用Maven进行构建和管理依赖。 在文件名称“maventest06”中,我们可以推测这是一个Maven...
Spring IOC 容器是 Java 企业级应用程序的核心组件之一,它提供了一个统一的依赖注入机制,使得应用程序的组件之间能够松耦合。Spring IOC 容器的启动流程是整个 Spring 框架的核心所在,本文将从 ...
通过阅读源码,开发者可以深入了解IoC容器的工作原理,包括如何解析配置,如何实例化和管理Bean,以及如何处理依赖关系。这对于理解Spring框架或者自己动手实现类似功能非常有帮助。 标签“工具”表明这个项目可能...