@jvmchat

Страница 1620 из 2890
Alex
17.07.2017
10:15:47
в Math.pow же 2 аргумента передается

ти там двоечки пропустил, если я правильно понял твои намерения

double result = Math.sqrt((Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)));

Victor
17.07.2017
10:17:36
Для этого есть Math.hypot(x2 - x1, y2 - y1) https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#hypot-double-double-

Google
Pavel
17.07.2017
10:19:07
спасибо

Aleksander
17.07.2017
10:55:13
Привет! Есть вопрос, а каким образом спринга дата находит классы, которые наследуются от CrudRepository и делает из них BeanDefinition. Кто знает? =)

Cargeh
17.07.2017
11:03:49
Привет! Есть вопрос, а каким образом спринга дата находит классы, которые наследуются от CrudRepository и делает из них BeanDefinition. Кто знает? =)
Сканирует все классы скорей всего. Ты ведь задаешь <context:component-scan base-package="com.mkyong.customer" /> (или аналог с @Configuration)

Aleksander
17.07.2017
11:04:34
Тоесть хочешь сказать, что там выставлен где-то в автоконфигурации у бута, компонент скан на весь класспас?

Aleksander
17.07.2017
11:07:35
А тогда вот еще что непонятно: над интерфейсами, которые ты наследуешь от CrudRepository не стоит никаких аннотаций, типа Component, Service и тд. И над всеми родителями тоже. Неужели он берет каждый твой класс и проверяет его родительские классы на наличие CrudRepository?

Евгений
17.07.2017
11:08:18
instanceof, чо тут проверять

Aleksander
17.07.2017
11:08:40
instanceof, чо тут проверять
Это понятно, но неужели это так?

Евгений
17.07.2017
11:08:52
добро пожаловать

Евгений
17.07.2017
11:08:53
а зачем что то еще выдумывать?

Митко Соловец?
17.07.2017
11:09:23
ну бут там не причем

Google
Aleksander
17.07.2017
11:09:27
Да в принципе ни в чем. Просто я думал, что это может делаться как-то хитро

Ладно, спасибо, осталось найти класс, где это происхоидт =)

Aleksander
17.07.2017
11:10:56
Сканнирование класспаса и проверка instanceOf CrudRepository

Cargeh
17.07.2017
11:11:29
Сканнирование класспаса и проверка instanceOf CrudRepository
Я ж тебе скинул ссылку: http://docs.spring.io/autorepo/docs/spring-boot/current/api/org/springframework/boot/autoconfigure/SpringBootApplication.html В исходники @SpringBootApplication загляни.

Aleksander
17.07.2017
11:12:39
бррр стоп =))

Митко Соловец?
17.07.2017
11:13:58
потому что всю мапу перебирает с бинами

Aleksander
17.07.2017
11:14:00
В данном контексте можно убрать действительно спрингбут, я хочу понять, как работает именно дата и найти то место, где он проверяет instanceOf CrudRepository и создает бин дефинишен.

Ivan
17.07.2017
11:14:17
потому что сканит твой класспас

Митко Соловец?
17.07.2017
11:14:18
http://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa/repository/config/EnableJpaRepositories.html

https://github.com/spring-projects/spring-data-jpa/blob/master/src/main/java/org/springframework/data/jpa/repository/config/JpaRepositoriesRegistrar.java

Cargeh
17.07.2017
11:14:48
Aleksander
17.07.2017
11:14:55
а ты думаешь почему spring стартует так медленно
Вопрос не про медленность его работы =) Я хочу посмотреть код и посмотреть как там это все реализовано.

Cargeh
17.07.2017
11:15:05
https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/CrudRepository.html > extends Repository<T,ID>

https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/Repository.html > General purpose is to hold type information as well as being able to discover interfaces that extend this one during classpath scanning for easy Spring bean creation.

Google
Aleksander
17.07.2017
11:15:19
Митко Соловец?
17.07.2017
11:15:20
Aleksander
17.07.2017
11:16:58
Central repository marker interface. Captures the domain type to manage as well as the domain type's id type. General purpose is to hold type information as well as being able to discover interfaces that extend this one during classpath scanning for easy Spring bean creation. - вот это я и не заметил.

Cargeh
17.07.2017
11:17:31
да только интерфейсы надо превратить в конкретные классы
так а как это связано с вопросом? Человек спросил, как спринг находит наследников CrudRepository. Ответ - через component scan

Cargeh
17.07.2017
11:17:56
Потом он, не увидев @ComponentScan в своем спринг буте, удивился: мол я вроде не сканирую, а ты говоришь оно сканируется. Я скинул ссылку на @SpringBootApplication, который включает в себя @ComponentScan

Митко Соловец?
17.07.2017
11:18:45
да, только без еще одной аннотации не заработает

@EnableJpaRepositories, например

с помощью которой собственно вся магия происходит

Митко Соловец?
17.07.2017
11:19:30
ведь у нас интерфейсы, а нужны им еще реализации

Митко Соловец?
17.07.2017
11:19:36
я лишь это имел в виду

Cargeh
17.07.2017
11:20:32
@EnableJpaRepositories, например
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-use-spring-data-repositories не?

а @EnableAutoConfiguration входит в состав @SpringBootApplication но вообще я хз

Митко Соловец?
17.07.2017
11:22:02
Spring Boot tries to guess the location of your @Repository definitions, based on the @EnableAutoConfiguration it finds. To get more control, use the @EnableJpaRepositories annotation (from Spring Data JPA).

вот их оф. комментарий

так что да, можно и не ставить, если у тебя бут

Ivan
17.07.2017
11:22:35
а @EnableAutoConfiguration входит в состав @SpringBootApplication но вообще я хз
ты все верно говоришь, но насколько я понял человек спрашивал где конкретные реализации репозиториев подставляются

этот код

Google
Митко Соловец?
17.07.2017
11:22:46
и копать надо уже в сторону тех ссылок, что я кинул

Aleksander
17.07.2017
11:24:16
Где прокси создаются из моих интерфейсов - я видел, но тут был вопрос именно про сам механизм обнаружения наследников crudRepository в моем приложении.

KrivdaTheTriewe
17.07.2017
11:24:17
а @EnableAutoConfiguration входит в состав @SpringBootApplication но вообще я хз
Не хочешь вместо спринга попробовать плей заюзать ? Там всё таки скалавей и нет гиморроя с аннотациями такого

Cargeh
17.07.2017
11:25:02
Хайлоад же
да, я видимо не шарю

Admin
ERROR: S client not available

KrivdaTheTriewe
17.07.2017
11:25:11
Очень пугает на самом деле, засилие аннотаций в современных джава прогах , непонятно, что там творится вообще

KrivdaTheTriewe
17.07.2017
11:25:51
Ну, прогресс он такой.
тут скорее попытка успеть за прогрессом

Aleksander
17.07.2017
11:25:57
А хотите еще один провокационный вопрос? =))

KrivdaTheTriewe
17.07.2017
11:26:06
давай!

Andrey
17.07.2017
11:26:15
тут скорее попытка успеть за прогрессом
А где нормальное решение проблелмы?

Aleksander
17.07.2017
11:26:34
А кто-нибудь знает годные мануалы, чтобы написать свой стартер для спрингбута?

http://www.baeldung.com/spring-boot-custom-starter - я по этому буду пытаться сделать.

KrivdaTheTriewe
17.07.2017
11:28:18
А где нормальное решение проблелмы?
синтаксический сахар в лице котлина

или скалы

Google
Ivan
17.07.2017
11:28:43
Где прокси создаются из моих интерфейсов - я видел, но тут был вопрос именно про сам механизм обнаружения наследников crudRepository в моем приложении.
это spring core делает, там есть все для того что сканить класспас, и там уже тупо будут либо isAssignableFrom или проверка на наличие аннотации

написать самому такой сканер ничего не стоит

Andrey
17.07.2017
11:29:18
синтаксический сахар в лице котлина
Чем они решают проблему с аннотациями?

Aleksander
17.07.2017
11:29:27
SpringCore вроде ничего не знает о классах SpringData? Или как,

?

KrivdaTheTriewe
17.07.2017
11:29:42
Cargeh
17.07.2017
11:29:47
SpringCore вроде ничего не знает о классах SpringData? Или как,
ты на ссылки вообще не заходишь что ли?)

Ivan
17.07.2017
11:29:57
я имею ввиду базовый функционал для сканирования лежит там, а в spring data скорее всего просто какие то настройки

Andrey
17.07.2017
11:29:58
их становится меньше
И какие аннотации пропадают?

Ivan
17.07.2017
11:30:04
типо по каким аннотациям парсить, я так думаю

KrivdaTheTriewe
17.07.2017
11:30:10
Ivan
17.07.2017
11:30:14
JpaRepositoriesRegistrar вот с этого класса можно начать копать

Andrey
17.07.2017
11:30:29
спринга
Ну хорошо, что не джавы сказал.

Какую аннотацию убирает котлин в спринге?

Митко Соловец?
17.07.2017
11:30:54
Andrey
17.07.2017
11:31:02
Ну, мне скучно.

Aleksander
17.07.2017
11:31:04
ты на ссылки вообще не заходишь что ли?)
Захожу:) просто меня спрашивают, когда я ещё все не изучил, на это 5 минут не хватит

Alexey
17.07.2017
11:31:15
ребята, подскажите пожалуйста как создавать большие имутабельные объекты. Используем билдер, ок, но допустим мне нужно что бы объект можно было создать только если все его филды имеют какие-то значения отличные от дефолтных. Т.е каждый метод билдера должен быть вызван.

KrivdaTheTriewe
17.07.2017
11:31:15
Какую аннотацию убирает котлин в спринге?
за котлин не скажу , чисто котлиновских вебфреймворков я не видел

KrivdaTheTriewe
17.07.2017
11:32:15
А за скалу?
спринговские аннотации

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