首页 相关文章 打破Java定律:无需创建对象--Ioc容器革命

打破Java定律:无需创建对象--Ioc容器革命

我们知道,在Java基本教程中有一个定律告诉我们:所有的对象都必须创建;或者说:使用对象之前必须创建,但是现在我们可以不必一定遵循这个定律了,我们可以从Ioc容器中直接获得一个对象然后直接使用,无需事先创建它们。这种变革,就如同我们无需考虑对象销毁一样;因为Java的垃圾回收机制帮助我们实现了对象销毁;现在又无需考虑对象创建,对象的创建和销毁都无需考虑了,这给编程带来的影响是巨大的。

我们从一个简单例子开始,有一个普通类B代码如下:
public class B implements BI{
AInfterface a;

public B(AInfterface a){

this.a = a

}

public void invoke(){

/** ...*/

}

}

有两种使用B的方式:

普通无Ioc容器的调用方式:
BI b = new B(new A());//需要在生成B...[ 查看全文 ]

2016-02-19 标签:
  • Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap   ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于ArrayList和HashMap。 Collection ├List       接口 │├LinkedList   &n...[ 查看全文 ]
  • tomcat本地地址 E:soft4developapache-tomcat-6.0.18 System.getProperty("user.dir")//E:soft4developapache-tomcat-6.0.18bin System.getProperty("catalina.home")//E:soft4developapache-tomcat-6.0.18对于jboss同样适用。其他容器未做测试。 说道这里,正好有朋友在群里头问了个问题,情景式这样的 登陆需要用Https来做请求,登陆成功后 问题来了 request.getServerPort() 只能获...[ 查看全文 ]
  • 标签:Java JAVA基础
    作为异军突起的新型语言,Java定义了一个标准的运行环境,用户定义的类在其中得到执行。这些用户自定义类的实例代表了真实环境中的数据,包括储存在数据库、文件或某些大型事务处理系统中的数据,而小型系统通常也需要一种在本地负责控制数据存储的机制。 由于数据访问技术在不同的数据源类型中是不一样的,因此对数据进行访问成了给程序开发人员的一种挑战,程序员需要对每一种类型的...[ 查看全文 ]
  • 标签:Web开发
     对象直接量提供了另一种创建新对象的方式。对象直接量允许将对象描述文字嵌入到JavaScript代码中,就像将文本数据嵌入在JavaScript代码中,就像将文本数据嵌入在JavaScript代码中作为引用的字符串一样。对象直接量是由属性说明列表构成的,这个列表包含在大括号之中,其中的属性说明用逗号隔开。对象直接量中的每个属性说明列表都由一个属性名及跟在其后的冒号和属性值构成。使用对象直接量创建对象的一...[ 查看全文 ]
  • java本身提供了对象复制的能力,在java.lang.Object类中有clone方法,该方法是一个protected方法,在子类需要重写此方法并声明为public类型,而且还需实现Cloneable接口才能提供对象复制的能力,clone()是一个native方法,native方法的效率一般来说都是远高于java中的非native方法,对性能比较关心的话首先考虑这种方式,这种复制在网上有很多例子就不多写了;在这要用的另一种方式——通过java的反射机制复...[ 查看全文 ]
  • 按照类型名称动态创建对象 作者:死猫 提交者:eastvc 发布日期:2003-9-20 10:22:27 原文出处:http://www.cpphelp.net/issue/classbyname.html 1 引言 我的一个实际项目中,由于希望通过一致的接口控制各种型号的设备,并且可以方便的随时扩充,以便将来支持更多的型号。因此,必须在运行时指定设备的型号。 为了使应用程序可以透明的控制各种型号的设备,所以建立了一个简单的继承体系,设计一个协...[ 查看全文 ]
  • 使用 <map 库创建关联容器 作者:Danny Kalev 编译:MTT 工作室 下载源代码 原文出处:Use the <map Library to Create Associative Containers 摘要: 当索引是整型,那么将值与之关联并不难,但如果数据的关联值对是其它数据类型怎么办呢?<map库具备一个关联容器,使用它可以很方便地关联所有类型的数据对。本文...[ 查看全文 ]
  • 强硬的把CSS和HTML塞到PHP里面可以防止代码太枯燥(DRY)并最终导致代码臃肿,因为的CSS和HTML需要比PHP更细致的对象结构。事实上,PHP的模板不是天生合适的,因为每个模板包含了许多不同的HTML,以及以不同的方式相结合的CSS对象。 然后,我并没有解释它,或者给出适当的语境。抱歉! 正确的粒度是减小CSS的关键之一 在PHP层,下面的会话流(来自Facebook)或许是一个单个对象。所有的检测哪些HTML要显示或者...[ 查看全文 ]
  • 标签:Web开发
    //写cookie操作 Cookie cooki; cooki=new Cookie("bbs_0001",String.valueOf(num));//用户ID cooki.setMaxAge(60*60*24*365);//cookie时间 cooki.setPath("/"); //根据个人的不用,在不同功能的路径下创建 response.addCookie(cooki); //清空Cookie操作 Cookie[] cookies=request.getCookies(); try { for(int i=0;icookies.length;i++) { Cookie cookie = new Cookie("bbs_0001",null); cookie....[ 查看全文 ]
  • 通过反射构造内部类对象 首先在 javalang 包下写一个包含内部类的类: package javalang;public class Outer { public static class Inner1{}} 注意这个类是 public static,后面我们慢慢把这些修饰符去掉。 要想通过反射来创建 Inner1 对象,首先要获得 Inner1 的 Class 对象。我们在 Outer 中写上 main 方法: public class Outer { public static class Inner1{}public static void main(String[]...[ 查看全文 ]
  • 标签:Java JAVA基础
    通过使用COM技术,我们用微软Office应用程序能够建立很多应用程序扩展,但是Java开发人员却无法享受它带来的便利--除非他们拥有方便的Java访问COM的途径(Java-to-COM桥)。使用JCom的时候,你可以在Java中控制几乎所有的COM对象,而且它还带有一些用于Excel的强大的辅助类。 在你每次编写用HTML表格样式或Java表格对象显示数据的应用程序的时候,通常都需要带有"导出到Excel"功能。那...[ 查看全文 ]
  • 标签:Java JAVA基础
    1 Java与数据库应用,JDBC Java发明以来,在短短的几年之间,迅速占领了从桌面应用(J2SE)到服务器(J2EE),再到小型设备嵌入式系统(J2ME)的应用开发市场,其语言吸取了SmallTalk的一切皆对象的理念,摆脱了C++的历史累赘,简洁、自由的风格赢得了很多开发者的喜爱。从JDK1.1开始,Java成为实用的语言,而不是被人观望的新品秀;再经过JDK1.2的大量增强(尤其是Collection Framew...[ 查看全文 ]
  • 使用 <multimap> 库创建重复键关联容器 作者:Danny Kalev 编译:TT 工作室 原文出处:Use multimap to Create Associative Containers with Duplicate Keys 摘要: 标准库的  multimap 容器与 map 关联容器非常类似——但是,multimap 允许重复键。这个特性使得 multimap 比想象的要有用得多。本文将对之进行探讨。 ...[ 查看全文 ]
  • 有时候,我们需要把对象A的所有值复制给对象B(B = A),但是这样用等号给赋值你会发现,当B中的某个对象值改变时,同时也会修改到A中相应对象的值! 也许你会说,用clone()不就行了?!你的想法只对了一半,因为用clone()时,除了基础数据和String类型的不受影响外,其他复杂类型(如集合、对象等)还是会受到影响的!除非你对每个对象里的复杂类型又进行了clone(),但是如果一个对象的层次非常深,那么clon...[ 查看全文 ]
  • final : 继承的弊端:打破了代码的封装性,final的出现正好弥补了这一弊端 final关键字: 1-final是一个修饰符,可以修饰类,方法,变量; 2-final修饰的类不能被继承 3-final修饰的方法不可以被覆盖 4-final修饰的变量是一个常数,只能被赋值一次并且要在定义时就将其赋予某值 规则 : 被定义final的常量要用大写字母表示,各单词之间用下划线_来隔开. 实例一: class Father01{ final String FATHER01_NA...[ 查看全文 ]
  • 单一类:(静态成员变量&静态初始化块)(成员变量&初始化块)构造函数 代码如下: public class 对象初始化顺序 {     public static void main(String[] args){         Person p = new Person();     } } class Person{     public static String staticfield ="静态成员变量";     public String field...[ 查看全文 ]
  • 标签:Java JAVA基础
    合成图像 您不必从文件中读取所有的图像 — 您可以创建自己的图像。要创建自己的图像,最灵活的方法是用一个 BufferedImage 对象,它是 Image 类的一个子类,它把图像数据存储在一个可以被访问的缓冲区中。它还支持各种存储像素数据的方法:使用或不使用 alpha 通道、不同种类的颜色模型以及颜色组件的各种精确度。ColorModel 类提供一种灵活的方法定义各种颜色模型,以和 BufferedIma...[ 查看全文 ]
  • 标签:ASP
    一、ASP创建对象的技巧 当我们使用服务器组件创建对象时,一般有两种方法。比较常用的方法是用SERVER对象的CreateObject() 方法,象这样: SET NextLink = Server.CreateObject("MSWC.NextLink") 这种方法很好用,但是还有一种方法更节省系统资源。 当你用Server.CreateObject()方法创建对象时,对象立即被加载,同时系统为这个对象分配好内存和其它资源。 第二种创建对象的方法是...[ 查看全文 ]
  • 一维数组的声明方式: type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为: 数组名 = new 数组元素的类型 [数组元素的个数] 实例: TestNew.java: 程序代码: public class TestNew {public static void main(String args[]) { int[] s ; int i ; s = new int[5] ; for(i = 0 ; i 5 ; i++) {s[i] = i ; } for(i = 4...[ 查看全文 ]
  • 在本教程中,你将学习如何使用3ds Max创建一个打破玻璃效果,希望这个教程对你有所帮助。 最终效果 下面教程开始 第1步 创建一个圆柱,命名为Glass。设置Radius为7,Height为30,Sides为6。(图01) 图01 第2步 移动圆柱的坐标:X = 0,Y = 0处,Z = 2。(图02) 图02 第3步 添加一个Edit poly,点击多边形选择图标,并选择底部的多边形。(图03) 图03 第4步 在Edit Polygons中,点击Bev...[ 查看全文 ]
手机页面 收藏网站 回到头部