Tag: dependency injection

如何在没有组件扫描的情况下在xml中配置控制器?

我必须使用spring mvc为银行设计一个非常大规模的项目。 我已经选择使用XML配置。 我担心的是限制服务器的启动时间。 将有大约2000个控制器。 我已经使用组件扫描来扫描@Controller 。 它工作正常。 但是,问题是当我从XML中删除组件扫描并在XML中手动使用bean配置添加控制器bean时,它没有在IOC容器中创建控制器实例。 并给我404未找到的错误。 那么如何在没有XML扫描的组件的情况下配置控制器。 以下是我的代码示例。 有帮助吗? servlet的context.xml中 <!—-> 根的context.xml ContactSetupController.java package com.stl.afs.ci.cca.controller; import org.hibernate.Query; import org.hibernate.SessionFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping(“/contactsetup”) public class ContactSetupController { private static final Logger logger = LoggerFactory.getLogger(ContactSetupController.class); private ContactSetupDao contactSetupDao; […]

Android使用dependency injection简单的自定义类

在网上搜索了解这个function后,大多数主题或post都使用dependency injectionRetrofit或其他Android有用的库,但我有一些自定义类,我想用DI而我无法完成它,例如我有一个简单的自定义类用于使用SharePreference ,我正在使用它作为Singleton类 在我的代码中,我无法将正确的Dagger分配给SpApplication类上的组件,以便在活动或片段上使用它 public class SP { private SharedPreferences preferences; private Context context; public SP(Context context) { this.context = context; } private SharedPreferences getPrefs() { return preferences = PreferenceManager.getDefaultSharedPreferences(context); } public String getString(SharedPrefsTypes propertyName) { return getPrefs().getString(propertyName.toString(), “”); } public int getInt(SharedPrefsTypes propertyName) { return getPrefs().getInt(propertyName.toString(), 0); } … public enum SharedPrefsTypes { Login […]

如何使用springdependency injection连接多个fxml控制器?

我阅读了一些基本示例的春季教程,我对如何正确连接事物感到困惑。 问题是,我想使用应用程序上下文来提取单例控制器引用,但我读到了一些其他主题,除非绝对必要,否则不应直接访问应用程序上下文。 我想我应该使用构造函数来实例化我想要的引用,但是这里的事情对我来说都很模糊。 我有几个fxml文件的javafx应用程序。 我有一个主要的fxml和其他动态加载在main中。 我将使用简化代码,例如两个fxml控制器, MainController.java (用于主fxml)和ContentController.java (用于内容fxml) 想法是内容fxml有TabPane,主fxml有按钮,在ContentController上的TabPane中打开新选项卡。 我目前正在做这样的事情 bean xml: MainControler: public class MainOverlayControler { ApplicationContext context; @FXML private BorderPane borderPane; @FXML private void initialize() { loadContentHolder(); } @FXML private Button btn; @FXML private void btnOnAction(ActionEvent evt) { ((ContentController)context.getBean(“contentController”)).openNewContent(); } private void loadContentHolder() { //set app context context = new ClassPathXmlApplicationContext(“Beans.xml”); Node […]

使用guice作为注入类的框架,正确的初始化方法?

我正在尝试编写一个框架,其中任意bean类都使用我的API注入类,并且它们可以与这两个类交互,并且基于定义的注释触发了回调。 这是一个示例bean: @Experiment static class TestExperiment { private final HITWorker worker; private final ExperimentLog log; private final ExperimentController controller; @Inject public TestExperiment( HITWorker worker, ExperimentLog expLog, ExperimentController controller ) { this.worker = worker; this.expLog = expLog; this.controller = controller; } @SomeCallback void callMeBack() { … do something log.print(“I did something”); } } 我正在尝试使用Guice来注入这些bean并处理注入的类之间的相互依赖性。 但是,我有两个问题: 我传入的其中一个类( […]

Dagger 2活动注射不起作用

我正在尝试新的匕首2,这是我第一次实施它,但我不能让它工作。 我想我得到了这个概念,我理解这里的例子 我尝试复制相同的结构只是为我的例子稍作修改。 这是扩展Graph的AppComponent,我定义了我想要的类。 @ApplicationScope @Component(modules = {AppModule.class, DataModule.class}) public interface EFAppComponent extends EFGraph { /** * An initializer that creates the graph from an application. */ public final static class Initializer { private Initializer() { } // No instances. public static EFAppComponent init(EFApp app) { return Dagger_EFAppComponent.builder() .appModule(new AppModule(app)) .build(); } } } public […]

Spring应用程序的各个方面的dependency injection?

我正在研究Spring作为一个Web框架,但是我需要一些帮助来了解DI。 在运行时在容器中构造的对象的概念是一个新概念。 我只是想知道这将如何反映在一个大型应用程序中,我是否有一些模块正在进行更高度耦合的工作或者是否应该在运行时初始化每个对象? 这对我来说似乎有点密集,我的意思是说例如我有一个CSV文件数据挖掘应用程序,它每行删除数据 – 每行数据封装在我自己的一个CSVRow对象中进行处理或其他任何事情。 只要Excel文件可以上载到服务器,就会实例化这些对象。 我不知道我需要创造多少? 我似乎有点失落,任何清晰度,概述或一些指导将非常感激。 提前致谢!

JavaFX fxml – 如何将Spring DI与嵌套的自定义控件一起使用?

我已经完成了一些关于将Spring DI与Jav​​aFx集成的教程,但我已经碰到了一个简单的例子没有涉及的墙(我无法弄清楚)。 我想要在视图层和表示层之间进行清晰的分离。 我想使用fxml定义可组合视图,使用Spring将它们连接在一起。 这是一个具体的例子: Dashboard.fxml: Main.java: public void start(Stage primaryStage) throws Exception{ try { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppFactory.class); SpringFxmlLoader loader = context.getBean(SpringFxmlLoader.class); primaryStage.setScene(new Scene((Parent)loader.load(“/views/dashboard.fxml”))); primaryStage.setTitle(“Hello World”); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } SpringFxmlLoader.java: public class SpringFxmlLoader { @Autowired ApplicationContext context; public Object load(String url) { try { FXMLLoader loader = new […]

没有实现绑定 – Java Guice

新手在这里试图使用一个虚拟Java Facebook应用程序,使用Guice将数据库dependency injectionFacebook工厂,但继续让Guice错误告诉我: ###在查找使用@ com.example.storage.annotations.SystemDb注释的com.example.storage.Db时,没有使用@ com.example.storage.annotations.SystemDb()注释的com.example.storage.Db的实现。 ()for com.example.facebook.client.exceptions.FacebookExceptionHandlerDb中的参数0,位于com.example.facebook.client.guice.FacebookClientModule.configure ###无法在com.example.facebook.statsd.StatsdClient中找到合适的构造函数。 类必须有一个(也是唯一一个)使用@Inject注释的构造函数或一个非私有的零参数构造函数。 at com.example.facebook.statsd.StatsdClient.class,同时在com.example.facebook.client.exceptions.FacebookExceptionHandlerDb中找到参数1的com.example.facebook.statsd.StatsdClient。 com.example.facebook.client.guice.FacebookClientModule.configure 应用代码: app.java package com.example.facebook; import com.google.inject.Guice; import com.restfb.Connection; import com.restfb.types.Post; import com.example.facebook.client.FacebookClientFactory; import com.example.facebook.client.RobustFacebookClient; import com.example.facebook.client.guice.FacebookClientModule; import com.example.facebook.statsd.StatsdClient; public class App { public static void main ( String[] args ) { final FacebookClientFactory facebookClientFactory = Guice.createInjector(new FacebookClientModule()).getInstance(FacebookClientFactory.class); //error from line above final […]

使用或不使用Spring Beans有什么区别?

可能我会得到很多downvotes,但是对于我来说,无论是否使用bean都是如此令人困惑。 让我们假设这个例子 interface ICurrency { String getSymbol(); } public class CurrencyProcessor { private ICurrency currency ; public CurrencyProcessor(ICurrency currency) { this.currency = currency; } public void doOperation(){ String symbol = currency.getSymbol(); System.out.println(“Doing process with ” + symbol + ” currency”); // Some process… } } 因此,为了注入ICurrency impl注入,我认为我可以通过两种方式实现: 方式1:没有春豆 public class CurrencyOperator { private ICurrency currency […]

如何在AuthenticationSuccessHandler中检索会话范围的bean?

我有一个自定义AuthenticationSuccessHandler。 我想要做的是在onAuthenticationSuccess方法中设置一些会话数据。 要存储会话数据,我想使用会话范围的bean,它可以在任何控制器中正常工作。 但是如果我尝试在onAuthenticationSuccess方法中检索它,我会得到一个例外: 创建名为’scopedTarget.sessionData’的bean时出错:当前线程的作用域’session’无效; 我的代码是: WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext()); SessionData sessionData = context.getBean(SessionData.class); 有任何想法吗?