作者归档:考拉哥

Guice系列之用户指南(九)

原文地址:https://code.google.com/p/google-guice/wiki/JustInTimeBindings JustInTimeBindings(即时绑定):主要是在@ImplementedBy和@ProvidedBy实现。 贴代码: 执行结果: Cat i am a cat Provider.get() Student i am a student 练习代码在这里

发表在 编程语言 | 标签为 , | Comments Off on Guice系列之用户指南(九)

Guice系列之用户指南(八)

原文地址:https://code.google.com/p/google-guice/wiki/BuiltInBindings Built-in Bindings(内建的绑定):即时在injector内的绑定。例如Loggers等。 贴代码: 执行结果: Injector{bindings=[InstanceBinding{key=Key[type=com.google.inject.Stage, annotation=[none]], source=[unknown source], instance=DEVELOPMENT}, ProviderInstanceBinding{key=Key[type=com.google.inject.Injector, annotation=[none]], source=[unknown source], scope=Scopes.NO_SCOPE, provider=Provider}, ProviderInstanceBinding{key=Key[type=java.util.logging.Logger, annotation=[none]], source=[unknown source], scope=Scopes.NO_SCOPE, provider=Provider}]} 练习代码在这里

发表在 编程语言 | 标签为 , | Comments Off on Guice系列之用户指南(八)

Guice系列之用户指南(七)

原文地址:https://code.google.com/p/google-guice/wiki/ToConstructorBindings Constructor Bindings(构造器绑定):在父类型上绑定子类实现的构造函数。 贴代码: 执行结果: run AnimalModule.configure() run Cat.constructor() name==>Tom i am a cat 练习代码在这里

发表在 编程语言 | 标签为 , | Comments Off on Guice系列之用户指南(七)

Guice系列之用户指南(六)

原文地址:https://code.google.com/p/google-guice/wiki/UntargettedBindings UntargettedBindings(没有目标的绑定):就是在module里绑定时不需要明确实现类,结合用@ImplementedBy或者@ProvidedBy实现。区别绑定的注解时要加上实现类的类型,即使是父类型。 贴代码: 执行结果: run AnimalModule.configure() CatWrapper.Contructor() com.zoo.guice.userguide.chap6.p1.CatWrapper@8fce95 com.zoo.guice.userguide.chap6.p1.Cat@143c8b3 CatWrapper.Contructor() com.zoo.guice.userguide.chap6.p1.CatWrapper@12d7a10 com.zoo.guice.userguide.chap6.p1.Cat@143c8b3

发表在 编程语言 | 标签为 , | Comments Off on Guice系列之用户指南(六)

Guice系列之用户指南(五)

原文地址:https://code.google.com/p/google-guice/wiki/ProviderBindings ProviderBindings(提供者绑定):就是实现Provider接口来生产依赖的对象。 贴代码: 执行结果: run AnimalModule.configure() run Provider.get() name==>Tom i am a cat 练习代码在这里

发表在 编程语言 | 标签为 , | Comments Off on Guice系列之用户指南(五)

Guice系列之用户指南(四)

原文地址:https://code.google.com/p/google-guice/wiki/ProvidesMethods @Provides Methods(@Provides注解方法):用@Provides来注解方法产生需要的对象。 贴代码: 执行结果: run @Provides jdbcUrl==>jdbc:mysql://localhost/pizza loginTimeout==>20 seconds 可以看到,在module里没有绑定int类型的值,却在依赖时注入了。 练习代码在这里

发表在 编程语言 | 标签为 , | Comments Off on Guice系列之用户指南(四)

Guice系列之用户指南(三)

原文地址:https://code.google.com/p/google-guice/wiki/InstanceBindings InstanceBindings(实例绑定):基本类型直接绑定值。 贴代码: 执行结果: jdbcUrl==>jdbc:mysql://localhost/pizza loginTimeout==>10 seconds 练习代码在这里

发表在 编程语言 | 标签为 , | Comments Off on Guice系列之用户指南(三)

Guice系列之用户指南(二)

原文地址:https://code.google.com/p/google-guice/wiki/BindingAnnotations BindingAnnotations(绑定注释):一个类型可能会有多个实现类,在绑定时加上注解,这样可以确定在依赖注入时用的具体是哪个实现类。 具体有2种,一种是自定义注解,另一种是@Named。 先看自定义注解,贴代码: 执行结果: Cat i am a cat 当把HelloServiceImpl的构造函数里的@Tom去掉后,执行结果: Dog i am a dog 发现,多个实现类绑定到一个类型时,后者覆盖前者。

发表在 编程语言 | 标签为 , | Comments Off on Guice系列之用户指南(二)

Guice系列之用户指南(一)

原文地址:https://code.google.com/p/google-guice/wiki/LinkedBindings LinkedBindings(链接绑定):在类型上绑定它的实现。 贴代码 执行结果: HelloServiceImpl hello 还可以写成绑定链,此时再添加个子类, 然后,HelloServiceModule里注释打开。 执行结果: SubHelloServiceImpl sub hello 在写成绑定链时,injector返回该类型最终的实现类。 练习代码在这里

发表在 编程语言 | 标签为 , | Comments Off on Guice系列之用户指南(一)

数据库事务浅析

数据库为什么要有事务,因为,事务是数据库区别于文件系统的特性之一。在文件系统中,如果你正在对2个文件进行修改,一个更新成功,另外一个在更新之前系统崩溃了,那么这就会有2个不同步的文件。 数据库中事务的基本作用就是将数据库从一种一致性状态转变为另外一种一致性状态。 数据库事务有4个特征(acid): 1.原子性(atomicity):事务中的所有动作要么都发生,要么都不发生。 2.一致性(consistency):事务将数据库状态从一种一致状态转变为下一种一致状态。 3.隔离性(isolation):一个事务的影响在该事务提交前对其他事务都不可见。 4.持久性(durability):事务一旦提交,其结果就永久性的。

发表在 数据库 | 标签为 | Comments Off on 数据库事务浅析