@jvmchat

Страница 1220 из 2890
Ivan
01.03.2017
11:55:33
В каком месте оно обычное? Я сам юзаю этот механизм для вытаскивания JPA модели и это очень хреново работает

Митко Соловец?
01.03.2017
11:56:05
ты напрямую JPA кидаешь на шаблон?

Ivan
01.03.2017
11:57:17
нет ты не понял о чем в видосе речь, в метод initCreationForm там попадает объект Owner который перед этим вытаскивается из БД с помощью метода findOwner, вот про это я говорил

а по поводу шаблона я сейчас юзаю DTO везде иначе можно словить миллион всякой херни от JPA/Hibernate

Google
Митко Соловец?
01.03.2017
12:00:12
ага, понял тебя

Sergey
01.03.2017
12:03:39
он не считает аннотации дикостью, глянь его либу jcabi
http://www.yegor256.com/2016/04/12/java-annotations-are-evil.html

Ivan
01.03.2017
12:04:20
да и че, там же все нормально описано в чем их минусы

Ivan
01.03.2017
12:04:28
есть

я уверен ты даже не в курсе

что там может стрельнуть

да и вообще мало кто в курсе как там @ModelAttribute работает внутри

Sergey
01.03.2017
12:05:06
не в курсе чего? того как они процессятся?

Ivan
01.03.2017
12:05:18
да, когда отрабатывает @ModelAttribute?

например

до входа в метод обработки запроса или после

?

Google
Ivan
01.03.2017
12:06:32
после выхода из метода я имею ввиду

Sergey
01.03.2017
12:07:53
конкретно его не юзаю, но неужели этого нет в доках или сложно посмотреть в исходниках?

ну вообще и на вход и на выход он вроде как работает. в зависимости от того куда воткнул его

Ivan
01.03.2017
12:09:07
а ты сорцы спринга читал?

Sergey
01.03.2017
12:09:11
если на метод - тогда на выход

Ivan
01.03.2017
12:09:20
а если я на метод класса повесил его

просто на левый

Sergey
01.03.2017
12:09:45
те что мне нужны были - да, читал

Ivan
01.03.2017
12:10:23
ну это не самое простое дело разобраться что они там делают, потому что кода куча, прочитав его один раз через месяц все забываешь что там написано

и по поводу @ModelAttribute он отрабатывает и на входе и на выходе все верно, и вот в этом видео на входе в метод Owner вытаскивается из репозитория

бинлится на параметр метода

Sergey
01.03.2017
12:11:16
просто на левый
его разве что-то обработает? он же только в контексте контроллера работает

Ivan
01.03.2017
12:11:25
конечно работает

если ты вешаешь @ModelAttribute на метод в классе то он всегда отрабатывает на входе и выходе из обработчиков запросов

большиство людей думают что @ModelAttribute просто кладет данные в модель шаблонизатора

но фактически он еще дохрена всего умеет делать

что в доках плохо описано

Sergey
01.03.2017
12:13:58
30 секунд потребовалось чтобы найти https://github.com/spring-projects/spring-framework/blob/1ee0626c94e6862fc21c99257e53433ee7ce4d36/spring-web/src/main/java/org/springframework/web/method/annotation/ModelAttributeMethodProcessor.java

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

если б не было в джаве аннотаций знаешь что было б?

Google
Sergey
01.03.2017
12:15:59
писали б в docblock их и разбирали рефлекшенами, как это сейчас делается на пхп

и это куда неудобнее чем нативные аннотации

Oleksandr
01.03.2017
12:16:32
а не проще явно обернуть в функцию?

собсно как и сделано в питоне с аннтотациями

Sergey
01.03.2017
12:17:02
что именно?

можно и мапу просто вернуть, чтобы очевидно было)

Oleksandr
01.03.2017
12:18:32
@f def g(): ... == def g(): ... ; g = f(g)

Oleksandr
01.03.2017
12:20:02
@f def g(): ... == def g(): ... ; g = f(g)
просто, красиво, понятно и искать легко а с джавовскими аннотациями быстрее ноут разбить со злости, чем вьехать в магию

Ivan
01.03.2017
12:21:43
нет, бывают простые аннотации сорцы которых даже читать не стоит потому что и так ясно что они делают, но в Spring другой случай, там аннотации ради аннотаций а не ради удобства

@ModelAttribute которые по идее должен биндить данные в модель шаблона на самом деле умеет еще и биндить параметры в метод

@RequestMapping который нельзя оверрайднуть или расширить в наследнике

Ivan
01.03.2017
12:23:11
3 разных аннотации для инжекта

2 аннотации для транзакций

Sergey
01.03.2017
12:23:59
ты еще вспомни аннотации для DI в 2х вариантах

Ivan
01.03.2017
12:24:05
в 3х

@Autowired, @Inject, @Resource

@Repository,@Component,@Service

Alexander
01.03.2017
12:24:52


James Tiberius Kirk ?
01.03.2017
12:26:35
@Autowired, @Inject, @Resource
надо написать этим людям

Google
Sergey
01.03.2017
12:26:46
@Autowired, @Inject, @Resource
@Named, @Qualifier, @Singleton, @Controller ...

Ivan
01.03.2017
12:26:58
@RestController

кстати те что ты перечислил вполне нормальные

к ним нет претензий

Sergey
01.03.2017
12:27:40
а искать из идеи че делает эта аннотация вообще без проблем

потыкал везде брейкпоинты, посмотрел и все. как по мне нет ничего сложного

другое дело если б там магические методы были, которые непонятно где и как процессятся

через eval

Admin
ERROR: S client not available

Sergey
01.03.2017
12:28:38
или какие-то подключаемые скрипты

Ivan
01.03.2017
12:29:22
ок, почему нельзя @RequestMapping переопределить в классе наследнике?

Anton
01.03.2017
12:35:31
а можно подробнее, а то интересно, а вопрос я ваш не понял)

Sergey
01.03.2017
12:36:01
вообще нельзя переопределить?

Ivan
01.03.2017
12:38:52
есть интерфейс в определенными методами, например put/get/post/delete я вешаю на каждый из них @RequestMapping с URL "/put", "/get" и т.д. называю интерфейс Crud и делаю несколько наследников, например AccountCrud, TableCrud и т.д., в них я вешаю одну аннотацию @RequestMapping уровня класса с каким нибудь префиксом, например @RequestMapping("/accounts"), и вуаля у меня 4 URL /accounts/put, /accounts/get и т.д.

вообще нельзя переопределить?
можно создать базовый класс но не вешать аннотации @RequestMapping, затем унаследоваться от класса и там уже на нужные методы повесить аннотации @RequestMapping

Sergey
01.03.2017
12:40:08
а если переопределить метод, но не трогать аннотации?

Ivan
01.03.2017
12:40:41
тогда просто будет URL который был объявлен в базовом классе, т.е. просто /get

без /accounts вначале

Sergey
01.03.2017
12:41:16
а что по этому поводу разрабы спринга говорят?

Ivan
01.03.2017
12:41:33
говорят пока не будем делать

Google
Ivan
01.03.2017
12:42:00
когда то я находил баг у них открытый уже несколько лет но сейчас искать в лом

может ошибаюсь

на стековерфлоу есть вопросы от людей

есть даже либа которую пилили чтобы решить косвенно эту проблему вроде https://github.com/resthub/springmvc-router

сделать маппинг URL в стиле djano

Anton
01.03.2017
12:43:26
а свою анотацию запилить, которая будет добавлять этот префикс)

и на наследника вешать ее

Ivan
01.03.2017
12:44:52
этот код придется поддерживать, плюс придут новые разрабы которые будут вникать, мы выбрали путь не указывать @RequestMapping в базовом классе, а указывать в наследниках, немного больше кода получается но суть таже

Anton
01.03.2017
12:47:03
нашел у нас такое, сделано так же)

Ivan
01.03.2017
12:55:21
ну в новых проектах я пытаюсь не юзать Spring(ну кроме нормальных по моему мнению либ типо Spring Security или IOC или AOP)

или Spring JDBc

Sergey
01.03.2017
12:55:42
IoC/AOP/Data самое годное

+ бут

V
01.03.2017
12:55:49
многозначительно

Sergey
01.03.2017
12:56:03
а для апи можно и jersey взять

Ivan
01.03.2017
12:56:09
Data не, бут хз, его юзаем есть плюсы есть минусы, для быстрого старта ок, потом нужно допиливать

проперти там повыставлять, где то их авто конфигурации отключить

Sergey
01.03.2017
12:56:48
в буте только напрягает что нужно отключать модули вручную которые не нужны

Ivan
01.03.2017
12:56:59
согласен

Страница 1220 из 2890