Внедрение зависимостей в Spring с помощью сеттера.

Помним, что в прошлом уроке внедрение админа в ПК происходило с помощью конструктора в классе ПК.

Но внедрять также можно с помощью сеттера

Класс ServerPC:

package com.someclasses; public class ServerPC{ private Administrator admin; private String pcid; private String pcBrand; ServerPC() {} ServerPC(Administrator admin) { this.admin = admin; } //Теперь внедрение будет происходить //с помощью этого сеттера. public void setAdmin(Administrator admin){ this.admin = admin; } public Administrator getAdmin() { return admin; } public void setPcid(String pcid) { this.pcid = pcid; } public void setPCBrand(String pcBrand) { this.pcBrand = pcBrand; } public String getPCid() { return pcid; } public String getPCBrand() { return pcBrand; } public String getAdminMessage(){ return admin.adminMessage(); } }

Теперь давайте в конфигурациях определим новый бин Серверного ПК, в который внедрять бин админа будем уже с помощью сеттера класса серверного ПК.

applicationContext.xml:


Создание и получение бинов в Java программе.

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

Пример программы:

import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import java.io.*; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.someclasses.ServerPC; @WebServlet(“/springservlet”) public class SpringServlet extends HttpServlet{ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( “applicationContext.xml”); //Теперь извлечем новый бин serverPCBeanSetter ServerPC serverpc = context.getBean(“serverPCBeanSetter”,ServerPC.class); resp.getWriter().write(serverpc.getAdminMessage()); } }

Проверка работы приложения

Теперь проверим скажет ли администратор “I’m an administrator!”.

Компилируем Java файлики. Файл сервлета при этом компилируем с использованием jar файлов спринг:

Запускаем Tomcat и открываем страницу сервлета по пути /springservlet :

Как видим сказал. То есть объект админа был успешно внедрен в объект ПК с помощью сеттера.

Внедрение значений из внешнего файла в поля бина.

Как внедрять значения в Spring-бины из properties-файлов. Практическое руководство по использованию property-placeholder и ${} синтаксиса в XML-конфигурации.
Time to read: 18

Области видимости бинов (Spring Scopes)

Разбираем 5 областей видимости Spring-бинов: singleton, prototype, request, session и global-session. Примеры конфигурации и использования в сервлетах.
Time to read: 16

Жизненный цикл Spring-бина

Изучите жизненный цикл Spring-бина: создание через BeanFactory, внедрение зависимостей, вызов init/destroy методов. Практический пример с XML-конфигурацией и сервлетом.
Time to read: 18