Size: a a a

2019 March 01
middlejava
#java #concurrency #tutorial

Java 8 Concurrency Tutorial: Threads and Executors.

Сага о многопоточности в Java в трёх частях.

Part 1: Threads and Executors

https://winterbe.com/posts/2015/04/07/java8-concurrency-tutorial-thread-executor-examples/

Part 2: Synchronization and Locks

https://winterbe.com/posts/2015/04/30/java8-concurrency-tutorial-synchronized-locks-examples/

Part 3: Atomic Variables and ConcurrentMap

https://winterbe.com/posts/2015/04/30/java8-concurrency-tutorial-synchronized-locks-examples/

https://t.me/middle_java
источник
middlejava
​​#humor #programming

​​Как пользователи осваивают мой код)

https://t.me/middle_java
источник
middlejava
Weekly Java news by Eugene.

Еженедельная подборка новостей по Java от Евгения.

https://www.baeldung.com/java-weekly-270

https://tele.gg/middle_java

#java #programming #spring #devops
источник
middlejava
#job #java

Свежие вакансии для разработчиков:

Главный инженер по разработке, Сбербанк, Москва

Приглашаются опытные Java-разработчики для реализации микросервисной архитектуры высоконагруженной системы Autopay (для автоматической оплаты услуг ЖКХ, штрафов ГИБДД и пр.), содержащей в промышленной базе данных более 50 миллионов активных клиентских подписок.

Обязанности:
• Разработка серверной части приложения
• Участие в проработке архитектуры задачи
• Взаимодействие с аналитиками, тестировщиками и смежными командами.

Требования:
• высшее техническое образование
• знание и понимание принципов ООП, шаблонов проектирования
• знание SQL и теории реляционных БД
• отличное знание Core Java
• опыт профессиональной разработки на Java от 2 лет
• опыт работы с Java2EE: EJB, JPA, JMS
• опыт работы с СУБД Oracle (знание PL/SQL)
• опыт работы с XA транзакциями
• опыт работы с Git, Maven (знание синтаксиса, умение настраивать pom.xml)
• английский на уровне чтения документации
• опыт разработки высоконагруженных/высокодоступных систем
• опыт работы с IBM WebSphere Application Server, IBM MQ
• опыт использования Bitbucket, JIRA, Jenkins, Confluence
• знание методологии разработки Agile/Waterfall
• понимание принципов Devops.

Условия:
• работа в крупнейшем банке России;
• трудоустройство согласно ТК РФ;
• регулярное корпоративное обучение;
• ДМС, страхование от несчастных случаев и тяжелых заболеваний;
• материальная помощь и социальная поддержка, корпоративная пенсионная программа;
• льготные условия кредитования;
• яркая и насыщенная корпоративная жизнь.

Если интересно, то прошу присылать резюме на ящик middle.java@mail.rumiddle.java@mail.ru

https://t.me/middle_java
источник
2019 March 02
middlejava
#java #springboot #docker

Are you ready for a good weekend break?
Then I suggest you create a microservice on Spring Boot in Docker.

Вы готовы хорошенько отдохнуть на выходные?
Тогда предлагаю вам создать микросервис на Spring Boot в Docker.

Build Spring Microservices and Dockerize Them for Production
https://developer.okta.com/blog/2019/02/28/spring-microservices-docker

https://t.me/middle_java
источник
middlejava
#job #life

Не стоит задерживаться на работе!

1. Работа - это бесконечный процесс. Используйте навыки управления временем и прекратите пытаться сделать все за один день!

2. Интерес клиента не важнее, чем ваша семья. Близкие всегда обогатят вашу жизнь больше, чем клиент. Дайте им время, которого они заслуживают.

3. Если ты столкнешься с проблемами - ни твой клиент, ни шеф не протянут тебе руку помощи, а лишь твоя семья и друзья.

4. Жизнь - это не только работа. Офис и клиент - это всего лишь один момент в жизни. С друзьями и семьей - это непрерывно. Накапливайте приятные моменты с семьей / друзьями и переживайте новые приключения вместе с ними.

5. Кто задерживается в офисе, не является трудолюбивым - те, кто способен эффективно работать - чрезвычайно успешны и имеют отличный баланс между работой и личной жизнью. Если вы работаете 10-12 часов, взгляните на то, ради чего это и приносит ли вам это ожидаемую пользу. Планируйте свой день до того, как он начинается.

6. Вы не для того усердно учились и боролись в жизни, чтобы стать машиной и работать 24 часа в сутки. Человек это не машина!

7. Если ваш шеф заставляет вас работать допоздна – значит он сам не организован и пытается переложить на вас последствия своих ошибок.

https://t.me/middle_java
источник
middlejava
А вы часто задерживаетесь на работе?
источник
2019 March 03
middlejava
#java #springboot #springdata #springsecurity

In this article, you will learn how to develop REST APIs with ease by using Spring Data REST and Spring Boot together. Throughout the article, you will scaffold a new Spring Boot application, create a JPA entity, and use Spring Data REST to provide some basic operations over it. Besides that, you will also learn how to validate the data your API is dealing with and how to secure the application.

В этой статье вы узнаете, как разрабатывать интерфейсы REST, используя Spring Data REST и Spring Boot. Вы создадите приложение Spring Boot, сущности JPA и используете Spring Data REST для выполнения базовых операций над ними. Кроме того, вы узнаете, как валидировать данные, с которыми работает ваш API и как защищать приложение.

https://morioh.com/p/cfa73a9056e9/spring-data-rest-tutorial-developing-restful-apis-with-ease

https://t.me/middle_java
источник
middlejava
#abeautifulmind #opticalillusion

Although it is obvious that the pillars in this optical illusion gif are staying in the same horizontal position, our brain is convinced that they should be moving to the right.

На самом деле  столбики в этой оптической иллюзии не двигаются по горизонтали, но наш мозг уверен, что они перемещаются вправо.

https://t.me/middle_java
источник
2019 March 04
middlejava
#java #spring #web #tutorial

5 Courses to Learn RESTful Web Services With Java and Spring in 2019 - DZone Integration.

Всем доброго дня!
Предлагаю 5 онлайн курсов для изучения RESTful веб-сервисов на Java и Spring в 2019 году.

https://dzone.com/articles/5-courses-to-learn-restful-web-services-with-java

https://t.me/middle_java
источник
middlejava
#java #tips

Вчера при работе с legacy проектом использующем Hibernate столкнулся с проблемой:

В БД Oracle есть колонка DELIVERYTIMESTART типа VARCHAR2(12).
Из приклада на эту колонку мапится свойство

   @Column
   private LocalTime startDeliveryTime;

При персисте значения startDeliveryTime=00:00:00 в колонку сохраняется значение "01.01.70".
Но нужно чтобы в колонку сохранялось "00:00:00".

Что было использовано:

1. В модели к свойству была добавлена аннотация

@Column(..., columnDefinition = "varchar2(12)")

Не помогло.

2. Использованы аннотации
@DateTimeFormat & @Temporal

Однако получил исключение:

AnnotationException: @Temporal should only be set on a java.util.Date or java.util.Calendar property: startDeliveryTime

3. В итоге к полю была применена аннотация @Convert и написан сам конвертер:

@Converter
public class TimeConverter implements AttributeConverter<LocalTime, String> {

   DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");

   @Override
   public String convertToDatabaseColumn(LocalTime timeAsLocalTime) {
       return timeAsLocalTime.format(dtf);
   }

   @Override
   public LocalTime convertToEntityAttribute(String timeAsVarchar2) {
       return LocalTime.parse(timeAsVarchar2);
   }
}

Этот подход работает.

https://t.me/middle_java
источник
middlejava
#java #sqlinjection

SQL Injection and How to Prevent It?
Injection attacks work because, for many applications, the only way to execute a given computation is to dynamically generate code that is in turn run by another system or component. If in the process of generating this code we use untrusted data without proper sanitization, we leave an open door for hackers to exploit.

SQL инъекции и как их предотвратить?
Атаки-инъекции работают потому, что для многих приложений единственный способ выполнить данное вычисление - это динамически сгенерировать код, который в свою очередь выполняется другой системой или компонентом. Если в процессе генерации этого кода мы используем недоверенные данные без надлежащей их предварительной обработки, мы оставляем открытую дверь для хакеров.

https://www.baeldung.com/sql-injection

https://t.me/middle_java
источник
middlejava
#programming #fullstack #web

Как подступиться к fullstack-разработке сегодня, если ты проспал десять лет.

https://m.habr.com/ru/post/427181/

https://t.me/middle_java
источник
2019 March 05
middlejava
#springboot #springcloudcontract #microservices #integrationtesting #automatedtesting

The following post might show you a new approach to writing proper integration tests for third party API. There will be using Consumer Driven Contract Testing (CDCT).

В этом посте продемонстрируем новый подход к написанию корректных интеграционных тестов для API сторонних приложений. Будем использовать Consumer Driven Contract Testing (CDCT).

https://medium.com/@axelhodler/integration-tests-for-third-party-apis-dab67c52e352

https://t.me/middle_java
источник
middlejava
#java #springboot

How to Change the Default Port in Spring Boot.

Как изменить порт по-умолчанию в Spring Boot.

https://www.baeldung.com/spring-boot-change-port

https://t.me/middle_java
источник
middlejava
#ide #intellij #idea #programming

IntelliJ IDEA handbook

Справочник по IntelliJ IDEA

https://t.me/middle_java
источник
middlejava
#job

Интересные данные для тех кто ищет работу.
Статистика вероятности трудоустройства через различные каналы.
https://zen.yandex.ru/media/mihico/statistika-veroiatnosti-trudoustroistva-cherez-razlichnye-kanaly-5c7e193b7dccd000afeaf492

https://t.me/middle_java
источник
middlejava
#job

Сегодняшние вакансии Java.
https://docs.google.com/document/d/174FrglWAWgMk4V6vjhUwUMR0qrjySoGWg0f30RnPjr0/mobilebasic

В списке представлены вакансии компаний:
- Deutsche Bank
- Revolut
- Одноклассники
- Yandex
- Альфа Банк

Если что-то заинтересовало, то присылайте ваше резюме на ящик middle.java@mail.ru, я перешлю его HR-у от которого получил данное предложение.

https://t.me/middle_java
источник
middlejava
#programming #git

10 Git-команд, которые стоит знать разработчику.
https://m.habr.com/ru/company/skillbox/blog/442260

https://t.me/middle_java
источник
2019 March 06
middlejava
#testing #programming

Testing Web APIs with Postman Collections.

Тестирование веб API с использованием коллекций Postman.

https://www.baeldung.com/postman-testing-collections

https://t.me/middle_java
источник