
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

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

Cargeh
17.07.2017
11:04:57

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

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

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

Cargeh
17.07.2017
11:08:56

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

Google

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

Cargeh
17.07.2017
11:10:33

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

Cargeh
17.07.2017
11:11:29

Митко Соловец?
17.07.2017
11:11:38
спринг дата и без него работает

Cargeh
17.07.2017
11:12:06

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

Ivan
17.07.2017
11:13:40

Митко Соловец?
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

Ivan
17.07.2017
11:14:52

Aleksander
17.07.2017
11:14:55

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

Митко Соловец?
17.07.2017
11:17:44

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

Митко Соловец?
17.07.2017
11:18:45
да, только без еще одной аннотации не заработает
@EnableJpaRepositories, например
с помощью которой собственно вся магия происходит

Aleksander
17.07.2017
11:19:26

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

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

Cargeh
17.07.2017
11:20:32
а @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
этот код

Google

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

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

KrivdaTheTriewe
17.07.2017
11:24:17

Cargeh
17.07.2017
11:24:35

Vitalii
17.07.2017
11:24:53

Andrey
17.07.2017
11:24:58

Cargeh
17.07.2017
11:25:02

Alexander
17.07.2017
11:25:07

Admin
ERROR: S client not available

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

Andrey
17.07.2017
11:25:39

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
написать самому такой сканер ничего не стоит

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

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

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

KrivdaTheTriewe
17.07.2017
11:31:15

Andrey
17.07.2017
11:31:27

KrivdaTheTriewe
17.07.2017
11:32:15