Инъекция зависимостей (DI) означает отделить объекты, которые зависят друг от друга. Скажем, объект A зависит от объекта B, поэтому идея состоит в том, чтобы отделить этот объект друг от друга. Нам не нужно жестко кодировать объект, используя новые ключевые слова, а не общие зависимости к объектам во время выполнения, несмотря на время компиляции. Если мы говорим о
Нам не нужно жестко закодировать объект, используя новое ключевое слово, скорее определите зависимость компонента в файле конфигурации.
IOC является общей концепцией, и ее можно выразить разными способами, а инъекция зависимостей - одна конкретный пример IOC.
DI DI на основе конструктора выполняется, когда контейнер вызывает конструктор класса с несколькими аргументами, каждый из которых представляет зависимость от другого класса.
public class Triangle {
private String type;
public String getType(){
return type;
}
public Triangle(String type){ //constructor injection
this.type=type;
}
}
<bean id=triangle" class ="com.test.dependencyInjection.Triangle">
<constructor-arg value="20"/>
</bean>
DI-файл на основе Setter выполняется с помощью методов вызова вызывающего контейнера в ваших компонентах после вызова конструктора без аргументов или статического заводского метода без аргументов для создания экземпляра вашего компонента.
public class Triangle{
private String type;
public String getType(){
return type;
}
public void setType(String type){ //setter injection
this.type = type;
}
}
<!-- setter injection -->
<bean id="triangle" class="com.test.dependencyInjection.Triangle">
<property name="type" value="equivialteral"/>
ПРИМЕЧАНИЕ. Хорошим правилом является использование аргументов конструктора для обязательных зависимостей и сеттеров для необязательных зависимостей. Обратите внимание, что если мы используем аннотацию, основанную на @Required аннотации на сеттер, можно использовать для создания сеттеров в качестве необходимых зависимостей.
Вам нужен артефакт. Вы можете использовать общедоступные, такие как maven-central , jitpack или создать свой собственный, используя JFrog .
Затем обновите ваш библиотечный проект, способный работать с maven для создания артефакта. После этого вы готовы к публикации.
Я бы предложил использовать jitpack, если вы не знакомы, так как это огромная тема.