Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515

Конструктор с параметрами в Spring

16.07.2017, 17:45. Показов 2740. Ответов 14

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите, пожалуйста, как можно создавать бины через конструктор с параметрами.
Например, есть такой класс (два конструктора - пустой и с параметрами; геттеры, сеттеры для краткости не приводятся):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.time.LocalDateTime;
 
public class Route {
    private LocalDateTime arrive;
    private LocalDateTime departure;
    private String from;
    private String to;
 
    public Route(){}
 
    public Route(LocalDateTime arrive, LocalDateTime departure, String from, String to) {
        this.arrive = arrive;
        this.departure = departure;
        this.from = from;
        this.to = to;
    }
 
    // геттеры, сеттеры
 
    public void printRoute(){
        System.out.println("Откуда: " + from +
        ", куда: " + to +
        ", прибытие: " + arrive +
        ", отбытие: " + departure);
    }
}
Основной класс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
@SpringBootApplication
public class TrainScheduleApplication {
 
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("app-context.xml");
        Route route = ctx.getBean("routeEmpty", Route.class);
        route.printRoute();
    }
}
Файл "app-context.xml":
XML
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans [url]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]
        [url]http://www.springframework.org/schema/context[/url] http://www.springframework.org/schema/context/spring-context-4.3.xsd">
 
    <bean id="routeEmpty" class="com.example.demo.Route">
    </bean>
 
</beans>
Собственно, не понимаю, как создавать маршруты (Route) с помощью конструктора с параметрами. Буду признателен за помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2017, 17:45
Ответы с готовыми решениями:

Определить конструктор без параметров, конструктор с одним параметром, конструктор с двумя параметрами, деструктор
Создать класс «матрица». Данный класс должен содержать элементы типа int, определяющие число строк, столбцов и состояние ошибки. Определить...

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно»
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по умолчанию, конструктор с параметрами....

Конструктор с параметрами И конструктор по умолчанию. Как?
Опять прошу совета. Выполняю тут из интернета задания. Класс надо создать, там будут конструкторы и с пар. и без аргументов. И вот не...

14
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
16.07.2017, 19:28
собственно rtfm
https://docs.spring.io/spring/... -container
ну а кроме того, писать конфиг в xml не кошерно
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
17.07.2017, 03:35  [ТС]
xoraxax, спасибо, конечно, но где находится документация, я и так знал. Можете код показать?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
17.07.2017, 09:52
Не надо знать, где она находится, надо ее читать. Но так уж и быть, полистаю за тебя. п. 7.4.1
0
17.07.2017, 10:18  [ТС]

Не по теме:

Что-то cyberforum стал походить на sql.ru. Много умников, но фиг кто поможет.

0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
17.07.2017, 17:37
WoodHead,

Не по теме:

ну а какую помощь вы ожидаете получить в разделе EE? Вам дали ссылку, которая содержит ответ на ваш вопрос. Писать примеры в Enterprise разделе занятие не благодарное. Если у вас имеется необходимая база знаний для изучения технологий ЕЕ - ссылки в ответ достаточно, а если знаний не достачно то объяснять подробно пустая трата времени.

IMHO

0
0 / 0 / 1
Регистрация: 05.03.2013
Сообщений: 42
18.07.2017, 10:05
госпади, пролистать сложно? копипаста из п. 7.4.1:
Java
1
2
3
4
5
6
7
8
9
10
<beans>
    <bean id="foo" class="x.y.Foo">
        <constructor-arg ref="bar"/>
        <constructor-arg ref="baz"/>
    </bean>
 
    <bean id="bar" class="x.y.Bar"/>
 
    <bean id="baz" class="x.y.Baz"/>
</beans>
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
18.07.2017, 10:45
Цитата Сообщение от WoodHead Посмотреть сообщение
Собственно, не понимаю, как создавать маршруты (Route) с помощью конструктора с параметрами. Буду признателен за помощь.
вообще странный подход, такие объекты являются доменными и в контексте присутствовать не должны, тем более им создаваться.
к тому же вот эти параметры тоже должны тогда быть в контексте, что уж совсем не правильно:
Цитата Сообщение от WoodHead Посмотреть сообщение
LocalDateTime arrive, LocalDateTime departure, String from, String to
если надо, то делайте фабрику, кто вам мешает?
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
18.07.2017, 18:14  [ТС]
LeX, а что значит "доменные" и почему они "не должны присутствовать в контексте"? А как определить, какие объекты должны присутствовать, а какие - нет? Что меня должно натолкнуть на мысль, что вот этот POJO не надо помещать в контейнер?
Можете показать, как создать бин из примера с нужными свойствами с помощью фабрики?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
19.07.2017, 00:49
в контекст обычно попадают сервисы, репозитории и т.д. Твой объект - это просто кусок данных,в сях было бы struct. Создавать такие объекты как правило нужно только в тестах, пихать их в контекст странно. В буте лучше создать файл @configuration , в нем обьявить метод getRoute, аннотировать его @Bean и вернуть из него нужный объект. Если ты извращенец и пользуешься xml, то удосужься прочитать доки, и тупо скопировать оттуда кусок конфига.

Какая конкретно часть тебе не ясна?
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
21.07.2017, 07:50
WoodHead, доменные объекты - это данные, твои маршруты - это данные, такие объекты либо приходят в запросе, либо достаются из бд и нужны только в рамках запроса, в контексте хранятся только объекты доменной логики и обработчики, т.е. разнообразные сервисы, контроллеры и т.д.

Добавлено через 1 минуту
а насчет фабрики - она тебе не нужна, у тебя есть конструктор со всеми полями
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
21.07.2017, 08:05  [ТС]
LeX, кажется, я вас понял. То есть, мне нужно в качестве бина использовать класс RouteService, который был бы в единственном экземпляре, и мог создавать объекты типа Route? Что-то типа
Java
1
2
3
public Route getRoute(LocalDateTime arrive, LocalDateTime departure, String from, String to){
    return new Route(arrive, departure, from, to);
}
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
21.07.2017, 19:17
Можно и так, но зачем? Почему не использовать конструктор на месте?
0
105 / 104 / 29
Регистрация: 15.01.2011
Сообщений: 515
22.07.2017, 03:10  [ТС]
LeX, по заданию нужно использовать Spring. И я вот никак не могу понять, в чём профит его применения, если без него легче, чем с ним. Можете привести похожий пример, но с использованием Spring?
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
22.07.2017, 07:17
Задачу в студию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.07.2017, 07:17
Помогаю со студенческими работами здесь

Конструктор (с параметрами)
public Osob (Osob o1, Osob o2){ int crossPoint = (int)(Math.random() * 10); for (int i = 0; i &lt; D; i++){ ...

Конструктор с параметрами
Вот пример структуры моей программы. class Entity { protected: int id; public: Entity(); Entity(Entity*); };

Конструктор с параметрами
Не получается конструктор с параметром.. помогите пожалуйста! вот весь класс, нужно чтобы можно было в main писать вот так например: ...

Конструктор с параметрами
Добрый день. Я не считаю, что задавать вопросы в стиле (Я не могу решить задание на степике, помогите) это хороший вариант, но тут я...

Конструктор с параметрами
Добрый День/Вечер/Ночь! Возникла ситуация, с которой я не могу разобраться: в конструктор с двумя параметрами, нужно передать данные,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru