2012-01-03 5 views
17
  1. Я собирался эту статью http://www.vaannila.com/spring/spring-ioc-1.html и здесь используется контейнер термин . На приведенной ниже диаграмме показан контейнер. Что такое контейнер в этой статье? Это часть code или фасоль config файл?Что такое контейнер в весеннем каркасе?

  2. Может ли пружина использовать IOC весной MVC?

ответ

3

Контейнер - это фрагмент кода, который считывает файл конфигурации bean и выполняет соответствующие действия.

Да IOC может использоваться с MVC. Вот статья об этом. spring mvc

15

Контейнер используется для описания любого компонента, который может содержать другие компоненты внутри себя.

В соответствии с документацией Spring here

BeanFactory интерфейс является центральным IoC контейнера интерфейса весной. В его обязанности входит создание экземпляров или источников приложений, настройка таких объектов и сборка зависимостей между этими объектами.

IOC - это основной принцип, который использует Spring для разделения концепции концерна. Независимо от того, что вы используете - Spring MVC, Security, Core, DAO, вы будете использовать принцип IOC.

+0

Эта документация очень полезна. Очистила мои сомнения. – Akash5288

15

В этом контексте контейнер имеет значение чего-то, что обеспечивает инфраструктуру, необходимую некоторым компонентам для жизни.

Вы можете представить себе это так:

  • Подобно JVM является контейнером для запуска Java-программами,
  • Tomcat (или контейнер сервлетов в целом) это то, что работает сервлеты
  • в EJB-контейнер является Environmet, где живет EJB (см это википедия article (на немецком языке, но вы можете использовать ваш браузер переводчик))

Точно так же Spring является контейнером, где Весенние бобы живут.

0

Позвольте мне объяснить, что такое весенний контейнер. Предположим, у вас есть приложение Java с одним классом с именем Student и с одним именем студента переменной. здесь мы идем

public class Student{ 
private String name; 
public void setName(String name){ 
     this.name = name; 
public void getName(){ 
     System.out.println("Your Name : " + name);}} 

Теперь вы хотите, чтобы имя переменное должен получить автоматически инициализируются Икбал, когда приложение запускается и объект студента должны быть доступны в главном классе.

  • напишите файл конфигурации xml, где вы определите этот объект-ученик.

<?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-3.0.xsd"> 
 

 
    <bean id = "Student" class = "com.packagename.Student"> 
 
     <property name = "name" value = "iqbal"/> 
 
    </bean> 
 

 
</beans>

Теперь в главном классе мы имеем ApplicationContext

public class MainApp { 
 
    public static void main(String[] args) { 
 
     ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml"); 
 
     Studentobj = (Student) context.getBean("student"); 
 
     obj.getMessage(); 
 
    } 
 
}

SO пожалуйста, обратите внимание, здесь ApplicationContext, это будет действовать как контейнер и будет создавать и управлять классом Student для вашего приложения.

+1

Что делать, если это веб-приложение или программа Spring MVC, где мы не используем ApplicationContext, то как создается контейнер? –

Смежные вопросы