- 浏览: 830919 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (363)
- 2010年3月 (3)
- 2010年4月 (3)
- Java (116)
- ExtJs (22)
- EJB3.0 (11)
- JQuery (28)
- SqlServer (5)
- Oracle (17)
- hibernate (21)
- struts2 (14)
- php (10)
- JavaScript (11)
- jbpm (6)
- spring (24)
- lucene (2)
- ibatis (7)
- C# (8)
- mysql (11)
- json (3)
- webservice (3)
- 设计模式 (1)
- jdbc (1)
- servlet (2)
- ice (6)
- 日常软件问题 (2)
- 生活 (2)
- iphone (1)
- rest (3)
- ruby (2)
- linux (13)
- quartz (1)
- poi (1)
- redis (13)
- memcached (4)
- nosql (2)
- tomcat调优 (1)
- 项目管理 (0)
最新评论
-
天使建站:
jquery里和数组相关的操作 附带具体的实例 ...
jquery对象数组 -
Cy0941:
$('#formId').form('submit',...) ...
easyui的form表单提交处理 -
shmily2038:
swifth 写道楼主,,你的命令写错啦,,[root@ser ...
centos直接yum安装nginx -
swifth:
楼主,,你的命令写错啦,,[root@server ~]# y ...
centos直接yum安装nginx -
随遇而安DXX:
...
REST
person实体
通过一个string的参数,获取相应的对象
测试结果
输出结果:[name=test1,age=12,sex=男]
嗯,目前这里只是测试的。当然不能真的这么用,封装死了,用反射就没意义了
public class Person { private String name; private String age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "[name="+name+",age="+age+",sex="+sex+"]"; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
通过一个string的参数,获取相应的对象
public class ObjectService { private Object obj; private List<Map<String, String>> list; public ObjectService() { /* * 这里假设list是个数据集,可以用resultset代替 */ list = new ArrayList<Map<String, String>>(); Map<String, String> map = new HashMap<String, String>(); map.put("name", "test1"); map.put("sex", "男"); map.put("age", "12"); list.add(map); } public Object getObject(String className) { Class<?> a = null; try { // 通过字符串加载类 a = Class.forName("com.victop.beans." + className); // 实例化 obj = a.newInstance(); // 获得a类中声明的字段 Field[] fields = a.getDeclaredFields(); // 遍历字段 for (Field field : fields) { for (int i = 0; i < list.size(); i++) { Map<String, String> map = (Map<String, String>) list.get(i); Set<String> set = map.keySet(); Iterator<String> iterator = set.iterator(); while (iterator.hasNext()) { String keyString = (String) iterator.next(); //如果key值同类的属性名相同,那么将这个value set给该属性 if (keyString.equals(field.getName())) { field.setAccessible(true);//可以访问private属性 field.set(obj, map.get(keyString)); break; } } } } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return obj; } }
测试结果
public class Test { public static void main(String[] agrs) { ObjectService objectService = new ObjectService(); Person person = (Person) objectService.getObject("Person"); System.out.println(person); } }
输出结果:[name=test1,age=12,sex=男]
评论
2 楼
shmily2038
2011-04-02
悲剧了 写道
哥们,我的认识是
objectService.getObject(name);只负责获取对象,获取后
Person person = (Person) objectService.getObject("Person");
peson来操纵,set 或者动态调用里面的方法,而不是在获取的时候,来操纵,那样封装的太严重,外面根本就没法操纵,IOC就没了意义
objectService.getObject(name);只负责获取对象,获取后
Person person = (Person) objectService.getObject("Person");
peson来操纵,set 或者动态调用里面的方法,而不是在获取的时候,来操纵,那样封装的太严重,外面根本就没法操纵,IOC就没了意义
嗯,目前这里只是测试的。当然不能真的这么用,封装死了,用反射就没意义了
1 楼
悲剧了
2011-04-02
哥们,我的认识是
objectService.getObject(name);只负责获取对象,获取后
Person person = (Person) objectService.getObject("Person");
peson来操纵,set 或者动态调用里面的方法,而不是在获取的时候,来操纵,那样封装的太严重,外面根本就没法操纵,IOC就没了意义
objectService.getObject(name);只负责获取对象,获取后
Person person = (Person) objectService.getObject("Person");
peson来操纵,set 或者动态调用里面的方法,而不是在获取的时候,来操纵,那样封装的太严重,外面根本就没法操纵,IOC就没了意义
发表评论
-
Jackson2.x通用工具类
2014-11-03 11:38 4894import java.io.IOException; i ... -
面试题
2013-02-27 09:04 1705从1加到100(考虑减少循环次数)使用数学公式 首先要知道 ... -
单例延迟实例化
2013-01-23 08:55 13231.如果出于性能的考虑而需要对实例域使用延迟初始化,就使用双 ... -
java中重载与重写的区别
2013-01-21 10:03 922首先我们来讲讲:重载(Overloading) ( ... -
自定义标签
2012-12-15 12:58 994package com.fsti.tag; import ... -
JAXB格式化beanToXml
2012-12-14 15:03 1250context = JAXBContext.n ... -
面向对象的特征有哪些方面?
2012-12-13 09:36 1001计算机软件系统是现实 ... -
java nio缓冲器
2012-12-05 17:03 3598缓冲器仅仅是一个" 多功能 " 的数组。可 ... -
面向对象三大特性一句话概括
2012-12-04 15:58 1549封装可以隐藏实现细节,使得代码模块化; 继承可以扩 ... -
Java序列化高级认识
2012-12-04 09:13 1061将 Java 对象序列化为二进制文件的 Java 序列化技术是 ... -
面向接口编程——提升系统多态性和可扩展性
2012-12-03 14:10 1277接口的本质 接口,在表面上是由几个没有主体代码的方 ... -
面向对象之多态
2012-11-23 19:22 868多态性(polymorphisn)是允许你将父对象设置成为和一 ... -
我对"秒杀"在技术性上的一些看法
2012-11-22 11:31 1007秒杀,是指电子商务 ... -
项目编码
2012-11-16 13:59 1146看两个项目所用的编码是否一样 Java的乱码问题: ... -
SVN错误:Attempted to lock an already-locked dir
2012-11-07 09:08 1023出现这个问题后使用“ ... -
面向对象的三个基本特征
2012-11-04 08:31 1083面向对象的三个基本特征是:封装、继承、多态。 封装 封装最 ... -
预编译防sql注入
2012-11-03 20:23 1968prepareStatement会先初始化SQL,先把这个SQ ... -
Java类与对象的初始化
2012-10-19 09:33 892Java类与对象的初始化 面试的时候,经常会遇到这样的笔试题 ... -
commons bean
2012-10-19 09:15 884这是两个javabean对象 package com.bea ... -
java工具DateUtil
2012-10-12 14:42 1050//一年内的周一 public final class Da ...
相关推荐
【Spring IOC测试】\n\n在Java开发领域,Spring框架是不可或缺的一部分,尤其其核心特性——Inversion of Control(IOC,控制反转),更是备受推崇。本文将深入探讨Spring的IOC特性,并通过一个XML配置文件的示例来...
无聊配置
1:创建一个空的Java工程 ...4:运行文件: demo\src\org\jmin\test\ioc\BeanTestRunner.java 查看各个Ioc测试应用 5:运行文件:demo\src\org\jmin\test\swing\SwingAppStarter.java 一个ioc应用XML案例
总之,Spring Ioc通过控制反转和依赖注入,极大地提高了代码的可维护性和可测试性,降低了系统的复杂度,使得开发人员能够更加专注于业务逻辑的实现。在实际开发中,理解并熟练运用Spring Ioc,对于提升开发效率和...
4. 测试类,使用IoC容器获取依赖对象并进行测试。 例如,IoCTest可能包含一个`IService`接口,一个实现了`IService`的`ServiceImpl`类,以及一个Spring配置文件`applicationContext.xml`,在测试类`IoCTestCase`中...
在IT行业中,依赖注入(IOC,Inversion of Control)是一种设计模式,它使得应用程序的组件之间解耦,提高了代码的可测试性和可维护性。在这个“自己实现ioc实例demo”中,我们将探讨如何通过XPath解析XML文件来实现...
总之,通过这个基础测试项目,初学者可以深入了解Spring框架如何实现IOC和AOP,从而更好地应用于实际的Java Web开发中,提高代码质量,降低维护成本。记住,理论结合实践是学习的关键,动手操作这些示例代码,将会对...
这个"helloIoc.zip"压缩包包含的是一组用于演示Spring IOC基本概念和使用的测试代码。 **控制反转(IOC)**: 控制反转是一种设计原则,它的主要思想是将对象的创建和管理权交给容器,而不是由对象自身负责。在传统...
在测试中,我们可以模拟不同的输入参数来验证工厂是否能正确地返回相应的产品实例。 2. **工厂方法模式**(factoryMethod):相比于简单工厂模式,工厂方法模式将创建对象的具体过程交给了子类,这样每个子类都可以...
JavaEE Spring IoC(Inversion of Control,控制反转)是企业级应用开发的重要技术,它极大地简化了Java应用程序的构建和维护。Spring框架的核心特性就是IoC,它通过管理对象的生命周期和对象间的依赖关系,使得...
3.自定义两个业务类Group和User,创建一个测试类Test,对IoC容器进行测试; 实验思路: 我们需要将自定义四个注解,然后将Group和User类使用@Component注解,在User类中创建Group类的实例化对象并设置为自动装配,...
- Spring提供了测试支持,如@Test注解的JUnit测试和@SpringBootTest注解的Spring Boot测试,方便进行集成测试和单元测试,确保IOC容器内的Bean正确工作。 以上就是Spring-IOC的基本实现和相关知识点,包括注解和...
总结来说,IoC是一种设计思想,它通过反转对象的控制权,将对象的创建和管理交给一个外部容器,从而降低了对象间的耦合,提高了软件的可扩展性和可测试性。在Java中,Spring框架提供了强大的IoC和DI功能,是实现这一...
Spring IOC,全称Inversion of Control,即“控制反转”,是Spring框架的核心特性之一。在传统的Java应用程序中,对象的创建和...同时,这样的测试也有助于理解和学习Spring IOC的工作机制,提升对Spring框架的理解。
这个“IOC练习事例”旨在帮助我们深入理解IOC和DI的概念,通过实现`MyselfIoc`容器,我们可以学习如何管理和解决对象的依赖关系,提高代码的灵活性和可测试性。通过接口编程和依赖注入,我们可以编写出更符合SOLID...
### 什么是控制反转(IoC)与依赖注入(DI) #### 控制反转(IoC) 控制反转(Inversion of Control,简称IoC)是软件工程领域的一个设计模式,主要用于简化对象之间的依赖关系管理。在传统的面向对象编程中,对象间的...
- **测试支持**: Spring提供了一系列的测试工具和API,如`@RunWith(SpringJUnit4ClassRunner.class)`,使得基于IoC的单元测试和集成测试变得简单。 以上就是关于"Spring IoC开发最小依赖包"的主要内容,它们共同...
【 Castle 框架与 IOC 技术详解】 Castle框架是一个针对.NET平台的开源软件开发框架,它集合了多种成熟的应用技术,如ActiveRecord、AspectSharp、MonoRail以及MicroKernel/Windsor等。其中,MicroKernel是Castle的...
IoC通过管理对象的生命周期和依赖关系,帮助开发者实现松耦合,提高代码的可测试性和可维护性。在Spring中,IoC可以通过XML配置或注解实现,而注解方式则更受现代开发者的欢迎,因为它提供了更加简洁、直观的编程...
**MVC模式与IOC容器互动详解** MVC(Model-View-Controller)模式是一种软件设计模式,常用于构建Web应用程序,以实现业务逻辑、数据处理和用户界面的分离。在这个模式中,Model代表数据模型,负责处理应用程序的...