Я пытаюсь понять различные области применения компонентов. При работе с @RequestScope я не вижу сообщения, выведенного на консоль из конструктора и метода Destroy(), чтобы подтвердить, когда этот компонент действительно создается или уничтожается. Это работает для @Singleton и @Prototype Beans.
Также person1.counter++; похоже, не сбрасывается после каждого запроса, что означает, что Bean на самом деле не воссоздается заново для каждого запроса, как следует из названия.
Но если я добавлю увеличенияCounter() в Person.java и вызовите это из контроллера, затем счетчик сбрасывается, и сообщения метода конструктора и уничтожения() печатаются в консоли. Что здесь происходит. В руководствах по @RequestScope ничего из этого не упоминается.
int increaseCounter() {
counter++;
return counter;
}
Мне также удалось изменить код так, чтобы
"Лицо создано" и
"Человек уничтожен"
отображалось, но person1.counter++; никогда не сбрасывается, как будто компонент на самом деле не уничтожается.
Person.java
package com.ivoronline.springboot_accessories_beans_scope_request;
import jakarta.annotation.PreDestroy;
import org.springframework.stereotype.Component;
import org.springframework.web.context.annotation.RequestScope;
@Component
@RequestScope
public class Person {
//PROPERTIES
public String name;
public int counter;
//CONSTRUCTOR
Person() {
System.out.println("Person Created");
}
//DESTROY
@PreDestroy
public void destroy() {
System.out.println("Person Destroyed");
}
}
Controller.java
package com.ivoronline.springboot_accessories_beans_scope_request;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Controller {
//PROPERTIES
@Autowired Person person1; //New Instance/Bean
@Autowired Person person2; //New Instance/Bean
//=========================================================================================================
// SET PERSON NAME
//=========================================================================================================
@RequestMapping("setPersonName")
void setPerson() {
person1.name = "John";
person2.name = "Bill";
person1.counter++;
}
//=========================================================================================================
// GET PERSON NAME
//=========================================================================================================
@RequestMapping("getPersonName")
String getPerson() {
return person1.counter + ":" + person1.name + " - " + person2.name;
}
}
Подробнее здесь: https://stackoverflow.com/questions/788 ... in-console
Конструктор Spring Boot @RequestScope не печатается в консоли ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1722599537
Anonymous
Я пытаюсь понять различные области применения компонентов. При работе с @RequestScope я не вижу сообщения, выведенного на консоль из конструктора и метода Destroy(), чтобы подтвердить, когда этот компонент действительно создается или уничтожается. Это работает для @Singleton и @Prototype Beans.
Также person1.counter++; похоже, не сбрасывается после каждого запроса, что означает, что Bean на самом деле не воссоздается заново для каждого запроса, как следует из названия.
Но если я добавлю увеличенияCounter() в Person.java и вызовите это из контроллера, затем счетчик сбрасывается, и сообщения метода конструктора и уничтожения() печатаются в консоли. Что здесь происходит. В руководствах по @RequestScope ничего из этого не упоминается.
int increaseCounter() {
counter++;
return counter;
}
Мне также удалось изменить код так, чтобы
"Лицо создано" и
"Человек уничтожен"
отображалось, но person1.counter++; никогда не сбрасывается, как будто компонент на самом деле не уничтожается.
Person.java
package com.ivoronline.springboot_accessories_beans_scope_request;
import jakarta.annotation.PreDestroy;
import org.springframework.stereotype.Component;
import org.springframework.web.context.annotation.RequestScope;
@Component
@RequestScope
public class Person {
//PROPERTIES
public String name;
public int counter;
//CONSTRUCTOR
Person() {
System.out.println("Person Created");
}
//DESTROY
@PreDestroy
public void destroy() {
System.out.println("Person Destroyed");
}
}
Controller.java
package com.ivoronline.springboot_accessories_beans_scope_request;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Controller {
//PROPERTIES
@Autowired Person person1; //New Instance/Bean
@Autowired Person person2; //New Instance/Bean
//=========================================================================================================
// SET PERSON NAME
//=========================================================================================================
@RequestMapping("setPersonName")
void setPerson() {
person1.name = "John";
person2.name = "Bill";
person1.counter++;
}
//=========================================================================================================
// GET PERSON NAME
//=========================================================================================================
@RequestMapping("getPersonName")
String getPerson() {
return person1.counter + ":" + person1.name + " - " + person2.name;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78824394/spring-boot-requestscope-constructor-not-printing-in-console[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия