草庐IT

java - Spring 无法注入(inject)实体管理器工厂

我使用JPA为我的DAO类编写测试,使用Hibernate作为JPA提供程序和Spring3.2。我无法正确注入(inject)实体管理器,尝试访问它时出现NullPointerException。我的GenericDAO实现如下所示:@RepositorypublicclassGenericDAOImplimplementsGenericDAO{@PersistenceContext(unitName="unitname")privateEntityManagerentityManager;publicEntityManagergetEntityManager(){returnent

java - 使用 Guice 实现参数化工厂

我有一个我喜欢使用Guice重新实现的工厂:enumMyObjects{OBJECT1,OBJECT2,...}classObject1implementsSomeInterface{...}classObject2implementsSomeInterface{...}...classFactory{publicstaticSomeInterfacecreateObject(MyObjectsobj){switch(obj){caseOBJECT1:returnnewObject1();caseOBJECT2:returnnewObject2();...}}有没有简单的实现方法?类似

java - Guice - 如何实现返回不同实现的工厂

假设我有一个名为Guice服务的服务,这是它的构造函数publicGuiceService(IPaymentpayment){this.payment=payment;}我的代码曾经使用枚举创建它IPaymentpayment=newPaymentFactory.create(PaymentType.Cash);NaiveServicenaiveService=newNaiveService(payment);而且我必须在某个地方有一个工厂实现。像这样的东西publicIPaymentcreate(PaymentTypepaymentType){IPaymentcardPayment=

java - 如何使构造函数仅对工厂类可用?

好吧,这个问题可能不是很清楚。让我给出一些细节:假设我有一个名为CFactory的Shoe(CShoe)对象工厂类。CFactory是一个单例类,它使用一个简单的HashMap来创建和存储所有实例化的鞋子。然后通过静态方法访问它以使用创建的对象。有没有办法强制CShoe的构造函数只能由工厂调用?(也就是说,保证鞋子的创建只能由鞋厂单例类完成,不能由其他类完成) 最佳答案 你可以让Shoe成为ShoeFactory的内部类:publicclassShoeFactory{publicstaticclassShoe{privateStri

java - 静态工厂方法每次调用时都会创建一个新对象

在EffectiveJava中提到“与构造函数不同,静态工厂方法不需要在每次调用时都创建一个新对象”。classCar{Stringcolor;Booleanspoiler;publicCar(Strings){color=s;spoiler=false;}publicstaticCarredCar(){returnnewCar("red");}}在主类中:Carc2=Car.redCar();Carc3=Car.redCar();c2和c3是不同的对象。我没有得到“不需要每次调用都创建一个新对象”的上下文。 最佳答案 因为那是你所

java - 避免在基于通用工厂的 MVP 框架中进行强制转换

我试图在MVP模式中实现一种将View和Presenter解耦的方法,以提供一个框架,它正是这样做的,但后来我感到困惑。背景我有一个连接演示者的通用类型的View界面,​​反之亦然。这些接口(interface)将由实现开发人员扩展。这个问题对具体接口(interface)不感兴趣,但它们的类定义如下所示:publicinterfacePresenter和publicinterfaceView这个想法是View和Presenter都知道相反的接口(interface)。为了使用这种结构,开发人员应该提供一个工厂,实例化他想要显示的View和处理这个View的演示者。他将它们都交给了一个

java - 工厂模式 : Validating input when creating a bean (Guice/Guava)

我正在编写一个新应用,使用Guice进行依赖注入(inject),并使用Guava的先决条件进行属性验证。我正在使用工厂模式根据外部输入创建bean。问题是,验证输入的首选方式是什么?(在可维护性、清晰度等方面)让我们假设这些类:Bean.javapublicinterfaceBean{publicObjectgetFoo();}BeanImpl.javapublicclassBeanImplimplementsBean{privatefinalObjectfoo;publicBeanImpl(Objectparam){foo=param;}@OverridepublicStringg

java - 这个简单工厂是否违反了开闭原则?

这个简单工厂是否违反了开闭原则?每次需要创建新的具体产品时,SimpleProductFactory都需要更改,但它遵循单一职责原则,因为这是它永远更改的唯一原因。它的唯一目的是让客户端不违反开放封闭原则,所以我想它本身不会违反,因为显然某处需要这段代码。我对更改工厂不感兴趣,但对这个具体示例是否违规不感兴趣。产品interfaceProduct{publicintgetPrice();}牛奶classMilkimplementsProduct{publicintgetPrice(){return5;}}筹码classChipsimplementsProduct{publicintge

java - 如何使用 JNDI 将参数传递给 LDAP 自定义套接字工厂?

我正在使用JNDI建立LDAP连接。示例:Hashtableenv=newHashtable();env.put(Context.PROVIDER_URL,LDAPS_URL);env.put(Context.SECURITY_AUTHENTICATION,"EXTERNAL");env.put("java.naming.ldap.factory.socket","ldaptest.CustomSocketFactory");...我需要在运行时将参数传递给CustomSocketFactory。特别是对客户端证书的引用。我该怎么做?我可以使用线程本地存储。有没有更好的办法?

java - 工厂方法 VS 工厂对象

这个问题在这里已经有了答案:DesignPatterns:FactoryvsFactorymethodvsAbstractFactory(9个回答)关闭6年前。据我了解工厂方法是简单工厂而工厂对象是抽象工厂?并且:-工厂方法(简单工厂):publicclassSimplePizzaFactory{publicstaticfinalintCHEESE=1;publicstaticfinalintPEPPERONI=2;publicstaticfinalintVEGGIE=3;publicstaticPizzacreatePizza(inttype){Pizzapizza=null;if(