Tag: dependency injection

匕首+ Kotlin不注射

我学习DI的Dagger 2,我只是做了这个代码注入改造: NetModule.kt @Module class AppModule(val mApplication: Application) { @Provides @Singleton fun provideApplication() : Application{ return mApplication } } AppModule.kt @Module class AppModule(val mApplication: Application) { @Provides @Singleton fun provideApplication() : Application{ return mApplication } } NetComponent.kt: @Singleton @Component(modules = arrayOf(AppModule::class, NetModule::class)) interface NetComponent { fun inject(activity: Activity) } CustomApplication.kt class CustomApplication : Application() { […]

Spring注入util:在Kotlin中映射types安全

我在XML中有几个bean定义来存储我的SQL外部。 我想把它们作为Map注入到Kotlin中Map但是到目前为止,我只能将它注入到Map 。 有没有一种方法来确保types安全。 将它注入为Map会感觉到贫民窟。 当我尝试Map甚至Map我得到不符合条件豆find… XML示例 注入服务 @Service open class JdbcBrandService @Autowired constructor( private val namedJdbcTemplate: NamedParameterJdbcTemplate ): BrandService { companion object { val logger = LoggerFactory.getLogger(JdbcBrandService::class.java) } @Autowired @Qualifier(value = “brandSql”) private lateinit var queries: Map /// methods and what not go here } 在Java中,我可以用类似下面这样的方式逃脱,但Kotlin的types系统更严格似乎阻止了这一点。 @RestController public class JavaBrandController { private final Map […]

在Kotlin的Injekt库中,我如何注入函数而不是值?

在Kotlin中使用Injekt库进行dependency injection时: 有时我想注入一个函数,而不是注入一个值。 所以像通过以下方式接收function: val function: (Int) -> Int = Injekt.get() 这似乎工作正常,但不是如果我注册多个函数具有相同的签名,但意义不同。 似乎没有办法区分这些function。 注意: 这个问题是由作者故意编写和回答的( 自我回答问题 ),所以对于常见的Injekt + Kotlin主题的习惯性的回答在SO中出现。 其他答案也欢迎,还有其他样式的如何做到这一点! 披露,我是Injekt图书馆的作者。

Mockito / Powermock不像Kotlin预期的那样工作

我使用mockito / powermock版本1.7.0,Spring Boot 2.0.0 M2,Kotlin 1.3.0。 我正在测试一个Spring @Service类,注入一个Repository。 我想在我的测试中嘲笑这个存储库,所以我可以测试这个类本身。 我是Kotlin的新手,但我来自Java,所以我尝试了这种“java方式”,但可能我错过了一些东西… 这是我的服务界面: interface MyService { fun create(myObject: MyObject): MyObject } …及其实施: @Service class DefaultMyService : MyService { @Autowired lateinit var myRepository: MyRepository override fun create(myObject: MyObject): MyObject = this.myRepository.insert(myObject) } 这里是我的存储库(我使用Mongo的Spring Data): interface MyRepository: MongoRepository 这是我的测试课: @RunWith(PowerMockRunner::class) @PrepareForTest(MyService::class) class MyServiceTest { @Mock lateinit var myRepository: […]