Size: a a a

2020 November 12

A

Anton in pro.jvm
Alexandr Emelyanov
за статью спасибо @Andrei_Belyaev
о, это супер!
источник

AE

Alexandr Emelyanov in pro.jvm
Anton
о, это супер!
умение гуглить программисту очень нужно
источник

A

Anton in pro.jvm
хм, читая статью возник вопрос. В самом первом примере кода создается метод в котором находится логика лямбды, и используется CallSite объект чтобы этот метод вызвать. Зачем использовать CallSite объект, если такой метод уже создан, и мы можем просто вызвать его?
источник

AB

Andrey Belyaev in pro.jvm
Anton
хм, читая статью возник вопрос. В самом первом примере кода создается метод в котором находится логика лямбды, и используется CallSite объект чтобы этот метод вызвать. Зачем использовать CallSite объект, если такой метод уже создан, и мы можем просто вызвать его?
A CallSite is a holder for a variable MethodHandle, which is called its target. An invokedynamic instruction linked to a CallSite delegates all calls to the site's current target. A CallSite may be associated with several invokedynamic instructions, or it may be "free floating", associated with none. In any case, it may be invoked through an associated method handle called its dynamic invoker.
источник

AS

Aleksey Shipilev in pro.jvm
Anton
хм, читая статью возник вопрос. В самом первом примере кода создается метод в котором находится логика лямбды, и используется CallSite объект чтобы этот метод вызвать. Зачем использовать CallSite объект, если такой метод уже создан, и мы можем просто вызвать его?
Потому что в общем виде целевой MethodHandle (MH) можно положить в MutableCallSite и менять его на лету, давая рантайму переоптимизировать. Для лямбд это не важно, потому что целевой MH там лежит в ConstantCallSite (CCS). JIT-компилятор, увидя слинкованный CCS, тупо найдёт там целевой MH, и заинлайнит сквозь него.
источник

AS

Aleksey Shipilev in pro.jvm
"В общем виде" -- это вообще для java.lang.invoke, а не для лябмд. Лямбды используют только небольшой кусочек возможностей java.lang.invoke, и поэтому может показаться, что в их трансляции есть лишние шаги.
источник

A

Alex in pro.jvm
Ребята подскажите пожалуйста. Как сделать лучше. Нужен класс для хранения настроек в БД. Хочется сделать так
источник

A

Alex in pro.jvm
public interface GpsServiceConfig extends DbConfig {

   @Property("services.gps.userName")
   @Default("admin")
   String getUserName();
}
источник

A

Alex in pro.jvm
И при вызове метода getUserName() читать из БД. Нужен кодогенератор свой писать?
источник

A

Alex in pro.jvm
Нужно так. Найти все интерфейсы которые наследуются от DbConfig. Далее сгенерировать для них имплементацию. А вопрос куда эти файлы сгенерированные закидывать. И как при сборке gradle запустить генерацию?
источник

x

x in pro.jvm
Alex
Нужно так. Найти все интерфейсы которые наследуются от DbConfig. Далее сгенерировать для них имплементацию. А вопрос куда эти файлы сгенерированные закидывать. И как при сборке gradle запустить генерацию?
Так не пойдёт?
public class GpsServiceConfig extends DbConfig {

   String getUserName() {
            // implemented in parent, encapsulates db access
            return getPropertyFromDBOrDefault(“services.gps.userName", “admin”);
        }
}
источник

A

Alex in pro.jvm
Таки надоело ))
источник

D

Dolberg in pro.jvm
Всем привет, может мне кто-нибудь помочь? У меня есть страница books.xhtml и spr.xhtml. Первая страница почему-то не отображается а вторая отображается нормально, в чем может быть причина?
источник

AE

Alexandr Emelyanov in pro.jvm
Alex
Нужно так. Найти все интерфейсы которые наследуются от DbConfig. Далее сгенерировать для них имплементацию. А вопрос куда эти файлы сгенерированные закидывать. И как при сборке gradle запустить генерацию?
сделай фабрику, которая будет плеваться проксями, которые имплементят запрошенный интерфейс, внутри все методы обрабатывай одинаково - взял вызванный метод, нашел на нем аннотацию, вытащил и передал дальше на извлечение
источник

A

Alex in pro.jvm
Вот прокси и фабриками сложно ))
источник

A

Alex in pro.jvm
Это темный лес для меня
источник

A

Alex in pro.jvm
Не подскажите что почитать?
источник

AE

Alexandr Emelyanov in pro.jvm
два класса, с 3-4 десятка строк
источник

AE

Alexandr Emelyanov in pro.jvm
Alex
Не подскажите что почитать?
документацию 😂
источник

AE

Alexandr Emelyanov in pro.jvm
посмотри Борисова, спринг потрошитель, там по шагам разложено как это сделать
источник