|
|
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
Из доки(второго спринг) авторThe Spring team's recommendation is that you only annotate concrete classes with the @Transactional annotation, as opposed to annotating interfaces. You certainly can place the @Transactional annotation on an interface (or an interface method), but this will only work as you would expect it to if you are using interface-based proxies. The fact that annotations are not inherited means that if you are using class-based proxies then the transaction settings will not be recognised by the class-based proxying infrastructure and the object will not be wrapped in a transactional proxy (which would be decidedly bad). So please do take the Spring team's advice and only annotate concrete classes (and the methods of concrete classes) with the @Transactional annotation. Note: Since this mechanism is based on proxies, only 'external' method calls coming in through the proxy will be intercepted. This means that 'self-invocation', i.e. a method within the target object calling some other method of the target object, won't lead to an actual transaction at runtime even if the invoked method is marked with @Transactional! Я не понял фразы The fact that annotations are not inherited means that if you are using class-based proxies then the transaction settings will not be recognised by the class-based proxying infrastructure and the object will not be wrapped in a transactional proxy (which would be decidedly bad) Аннотации не наследуются; это значит, что если ты используешь class-based прокси, то @Transactional не будет прочитан. Не осознал причинно следственной связи. Помогите осознать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 22:43 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
1) Ты бы ещепервый спринг изучал :) 2) Попробуй написать свой процессор аннотаций, где навесь аннотацию на интерфейс, и попробуй получить ее в наследнике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 23:07 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
забыл ник1) Ты бы ещепервый спринг изучал :) Да просто заинтересовался вопросом а нагуглил только для второго. не думаю, что кардинально что-то поменялось забыл ник2) Попробуй написать свой процессор аннотаций, где навесь аннотацию на интерфейс, и попробуй получить ее в наследнике в имплементаторе всмысле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 23:46 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 00:04 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
забыл ник Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Ну у класса B и нет, это я понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 00:10 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
забыл ник, всё равно не понятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 00:16 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
забыл ник Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Взять все интерфейсы и прочитать? С другой стороны тот факт, что метод требует транзакцию- детали реализации, а не контракта! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 06:04 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin С другой стороны тот факт, что метод требует транзакцию- детали реализации, а не контракта! по-моему в доке по другому написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 09:48 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
Я заметил что на новичков очень сильное впечатление производят Java-annotations. Столкнувшись с этой технологией 1 раз они верят в нее как в черную магию и пытаются тулить эти заклинания в те проекты, где Spring и любой другой фреймворк даже рядом не был. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 11:23 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
это в каком это спринге аннторировались классы транзакшнл? вродь методы ща аннотируются только? если в контексте транзакшнл речь идет разумеется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 18:15 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
maytonЯ заметил что на новичков очень сильное впечатление производят Java-annotations. Столкнувшись с этой технологией 1 раз они верят в нее как в черную магию и пытаются тулить эти заклинания в те проекты, где Spring и любой другой фреймворк даже рядом не был. Заметил, что умничать все горазды, а ответить никто не может. Вопрос не ясен разве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 20:05 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
lor2это в каком это спринге аннторировались классы транзакшнл? вродь методы ща аннотируются только? если в контексте транзакшнл речь идет разумеется. в 2-ом, 3-ем, 4-ом на данный момент) в первом хз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 20:07 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
lor2, http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/transaction/annotation/Transactional.html Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2016, 20:07 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
и в чем скрытый смысл аннотировать транзакцией КЛАСС? ну это так вопрос, в целях самообразования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2016, 09:53 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
lor2и в чем скрытый смысл аннотировать транзакцией КЛАСС? ну это так вопрос, в целях самообразования. Это всего лишь shortcut того, что все методы будут транзакционными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2016, 11:10 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
забыл ник, а как @Validated на интерфейсе работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2016, 12:54 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
up ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 00:16 |
|
||
|
Почему @Transactional надо навешивать на конкретные классы, а не интерфейсы
|
|||
|---|---|---|---|
|
#18+
Есть базовый вопрос : по написанию метода equals Josh Bloch on Design https://www.artima.com/intv/bloch17.html есть instanceof versus getClass in equals Methods есть спринг в котором есть понятие прокси ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 08:06 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39217094&tid=2124153]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 446ms |

| 0 / 0 |
