powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / spring. заменить xml на аннотации
19 сообщений из 19, страница 1 из 1
spring. заменить xml на аннотации
    #38351419
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прочитал на хабре статью:
http://habrahabr.ru/post/112488/

загорелся тоже по максимуму убрать Xml

вот только не знаю как заменить такоe на аннотации.



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">

		<property name="classesToBeBound">
			<list>
				<value>com.epam.hhsystem.model.candidate.Candidate</value>
				<value>com.epam.hhsystem.model.vacancy.Vacancy</value>
				<value>com.epam.hhsystem.model.event.Event</value>
			</list>
		</property>

	</bean>
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351445
iMove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос в лоб: а зачем? Вы думаете, что аннотации - это панацея? Панацея от чего? Вы не избавляетесь от XML, вы просто превращаете размазываете его по проекту тонким слоем. И вам точно так же надо будет это все поддерживать. Только в случае с XML все метаданные сконцентрированы в нескольких файлах, а в случае аннтоации - в десятках и сотнях классов.
Поэтому лично я всегда отдаю предпочтение XML. Вот я его открыл, вот я сразу же увидел, что куда инжектится, вот я сразу же увидел, куда идут какие веб-запросы, вот я сразу же увидел где и как открываются транзакции.
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351454
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно так же как в статье
Код: java
1.
2.
3.
4.
5.
6.
@Bean
public Jaxb2Marshaller jaxb2Marshaller() {
    Jaxb2Marshaller m = new Jaxb2Marshaller();
    m.setClassesToBeBound(...);
    return m;
}
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351457
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iMoveВопрос в лоб: а зачем? Вы думаете, что аннотации - это панацея? Панацея от чего? Вы не избавляетесь от XML, вы просто превращаете размазываете его по проекту тонким слоем. И вам точно так же надо будет это все поддерживать. Только в случае с XML все метаданные сконцентрированы в нескольких файлах, а в случае аннтоации - в десятках и сотнях классов.
Поэтому лично я всегда отдаю предпочтение XML. Вот я его открыл, вот я сразу же увидел, что куда инжектится, вот я сразу же увидел, куда идут какие веб-запросы, вот я сразу же увидел где и как открываются транзакции.

я не всегда понимаю, что это всё вообще значит, java кодом всё как-то понятнее.

ИМХО дело вкуса
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351464
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iMove,

+ java doc есть
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351507
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMoveВопрос в лоб: а зачем? Вы думаете, что аннотации - это панацея? Панацея от чего? Вы не избавляетесь от XML, вы просто превращаете размазываете его по проекту тонким слоем. И вам точно так же надо будет это все поддерживать. Только в случае с XML все метаданные сконцентрированы в нескольких файлах, а в случае аннтоации - в десятках и сотнях классов.
Поэтому лично я всегда отдаю предпочтение XML. Вот я его открыл, вот я сразу же увидел, что куда инжектится, вот я сразу же увидел, куда идут какие веб-запросы, вот я сразу же увидел где и как открываются транзакции.
Палка о двух концах. С одной стороны, действительно, сразу видно весь контекст, можно прочесть структуру приложения без того чтобы изучать отдельные классы.
С другой стороны этот шум не так уж и нужен. Подавляющее большинство бинов - синглтоны. Код становится минималистически лаконичным. Информация не дублируется. А значит читать отдельные классы проще.
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351508
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

в статье нет про авторclassesToBeBound)
положил этот класс в тот пакет, где используется маршаллер
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
package com.epam.hhsystem.ws.controller;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import com.epam.hhsystem.model.candidate.Candidate;
import com.epam.hhsystem.model.event.Event;
import com.epam.hhsystem.model.vacancy.Vacancy;

@Configuration
public class ContextConfiguration {

	@Bean
	public Jaxb2Marshaller jaxb2Marshaller() {
	    Jaxb2Marshaller jaxbMarshaller = new Jaxb2Marshaller();
	    jaxbMarshaller.setClassesToBeBound(Event.class);
	    jaxbMarshaller.setClassesToBeBound(Candidate.class);
	    jaxbMarshaller.setClassesToBeBound(Vacancy.class);
	    return jaxbMarshaller;
	}

}


авторERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eventController' defined in ServletContext resource [/WEB-INF/main-servlet.xml]: Cannot resolve reference to bean 'jaxbMarshaller' while setting bean property 'jaxb2Mashaller'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'jaxbMarshaller' is defined

кажется spring не видит класса ContextConfiguration
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351511
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90вот только не знаю как заменить такоe на аннотации.

Можно и без аннотаций весь контекст собрать Java кодом. Важно только разобраться, действительно ли это нужно и делает ли это проект лучше.
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351516
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Cannot resolve reference to bean ' jaxbMarshaller ' while setting bean property ' jaxb2Mashaller ';
С именами разберись.
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351524
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczredwhite90Cannot resolve reference to bean ' jaxbMarshaller ' while setting bean property ' jaxb2Mashaller ';
С именами разберись.

автор@Bean
public Jaxb2Marshaller jaxb2Marshaller() {
Jaxb2Marshaller jaxbMarshaller = new Jaxb2Marshaller();
jaxbMarshaller.setClassesToBeBound(Event.class);
jaxbMarshaller.setClassesToBeBound(Candidate.class);
jaxbMarshaller.setClassesToBeBound(Vacancy.class);
return jaxbMarshaller;
}
а где тут теперь id?
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351533
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
redwhite90,

сам себе отвечу)
Код: java
1.
@Bean(name="idValue")
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351800
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
redwhite90,
не могу понять как сделать ссылку по id на этот же самый бин в аннотациях
Код: xml
1.
2.
3.
<bean id="eventController" class="com.epam.hhsystem.ws.controller.EventController">
	<property name="jaxb2Mashaller" ref="refMarsh" />
</bean>
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351817
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351891
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

попробовал так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
@Bean(name = "refMarsh")
	public Jaxb2Marshaller jaxb2Marshaller() {
		Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();
		jaxb2Marshaller.setClassesToBeBound(Event.class);
		jaxb2Marshaller.setClassesToBeBound(Candidate.class);
		jaxb2Marshaller.setClassesToBeBound(Vacancy.class);
		return jaxb2Marshaller;
	}



Код: java
1.
2.
3.
4.
5.
6.
@RequestMapping("/events")
[SRC java]public class EventController extends AbstractController{
	
	
	@Autowired
	Jaxb2Marshaller refMarsh;


///...
}[/SRC]

также пробовал к бину Qualifer писать -не получается

Конкретно в приведенном примере вываливается NPE
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351917
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Конкретно в приведенном примере вываливается NPE
@Autowired(required=true) - покажет проблема в обнаружении или в том что контроллер вообще не обработан контейнером.
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38351937
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczredwhite90Конкретно в приведенном примере вываливается NPE
@Autowired(required=true) - покажет проблема в обнаружении или в том что контроллер вообще не обработан контейнером.
авторjava.lang.NullPointerException
at com.epam.hhsystem.ws.controller.EventController.add(EventController.java:49)
at com.epam.hhsystem.ws.controller.EventController$$FastClassByCGLIB$$c481ca01.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
....




ничего не изменилось.
Это выводится не при старте приложения, а при обработке запроса
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38352029
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

что скажете?
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38352047
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Blazkowicz,

что скажете?
скажем, что, если перефразировать известную украинскую поговорку, то не было у бабки проблем, пока она поросенка не купила.
...
Рейтинг: 0 / 0
spring. заменить xml на аннотации
    #38352143
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpasha,

=) возможно Вы и правы, но сравнить на практике хочется)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / spring. заменить xml на аннотации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]