Помним, что в прошлом уроке внедрение админа в ПК происходило с помощью конструктора в классе ПК.
Но внедрять также можно с помощью сеттера
Класс 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 Scopes) Разбираем
5 областей видимости Spring-бинов : singleton, prototype, request, session и global-session. Примеры конфигурации и использования в сервлетах.
Time to read: 16
Жизненный цикл Spring-бина Изучите
жизненный цикл Spring-бина : создание через BeanFactory, внедрение зависимостей, вызов init/destroy методов. Практический пример с XML-конфигурацией и сервлетом.
Time to read: 18