DI(Dependency Injection)
9878 ワード
コンセプト
Dependency Injection:
オブジェクト間の依存関係は、自身のアセンブリではなく外部のアセンブリによって実行されます.
制御を表す逆方向(IoC)
DI制御システムにおける各オブジェクトの外部オブジェクト依存オブジェクトの作成
DIの主な利点は緩和結合である.
オブジェクトはインタフェースの依存関係しか知らず、これらの依存関係は異なる実装に取って代わることができ、実装クラス間の違いを知らない.
スプリングのDIサポート
Spring ContainerはDIアセンブリを提供します.
オブジェクト間の依存関係は、スプリング設定ファイルで設定できます.
DI - XML
Spring Containerは、設定ファイルの設定を読み込むことでアプリケーションに必要な機能を提供します.
roottagは
beanオブジェクト注入コード
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id = "ds" class ="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="url" value = "jdbc:mysql://127.0.0.1:3306/ssafyweb?serverTimezone=UTC&useUniCode=yes&characterEncoding=UTF-8"></property>
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
<property name="username" value = "root"></property>
<property name="password" value = "ghkdth429"></property>
</bean>
<bean id = "gbDao" class ="com.ssafy.model.dao.GuestBookDaoImpl">
<property name="dataSource" ref="ds"></property>
</bean>
<bean id = "gbService" class ="com.ssafy.model.service.GuestBookServiceImpl">
<property name="guestBookDao" ref="gbDao"></property>
</bean>
</beans>
beanオブジェクトの取得
ApplicationContext context = new ClassPathXmlApplicationContext("com/ssafy/configuration/applicationContext.xml");
GuestBookService guestBookService = context.getBean("gbService", GuestBookService.class);
Reference
この問題について(DI(Dependency Injection)), 我々は、より多くの情報をここで見つけました https://velog.io/@taurus429/DIDependency-Injectionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol