Показаны сообщения с ярлыком java. Показать все сообщения
Показаны сообщения с ярлыком java. Показать все сообщения

среда, 24 августа 2016 г.

Spring DI для servlet контейнера

Существует вероятность того, что потребуется в существующее приложение на сервлетах добавить допустим REST.
Реализаций REST несколько, наиболее популярные Spring MVC и Jersey. Spring нам дает в придачу механизм DI, что невероятно удобно.

Но нельзя так просто прикрутить REST. Дело в том, что скорее всего вам захочется предоставить REST данные используя уже написанный код. Популярной техникой является создание простого REST контроллера, который использует какой-то внутренний сервис для получения данных. А если этих сервисов много надо заиспользовать в одном REST контроллере, то тогда хорошо бы эти сервисы объединить под одним фасадом. Это нужно для того чтобы соблюдался single responsobility принцип.

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

Дело в том, что инициализация сервлетов проходит независимо от инициализации контейнера спринга. Поэтому надо как-то так включить сервлеты в процесс инициализации спринга, и тогда мы сможем инжектить бины в сервлеты.

Вот так можно в сервлете написать

public class MyServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Autowired(required = true) //@Qualifier("SettingsService") private SettingsService settingsService; public void init(ServletConfig config) { try { super.init(config); } catch (ServletException e) { e.printStackTrace(); } SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext()); } ... Нужно еще порядок загрузки поменять в web.xml. Сначала нужно инициализировать контекст спринга, а потом контекст сервлетов

воскресенье, 22 декабря 2013 г.

Подготовка к сертификации Oracle Java. Oracle Certified Associate, Java SE 7 Programmer

Добрый день, читатель!

Как только я стал разрабатывать программное обеспечение (и читать хабр :) ), у меня появилась зависть к знаниям и навыкам senior developer`ов. Сопутствующим знаниям атрибутом мне казались сертификаты. Конечно, я понимаю, что это не так. Бумаги лишь говорят, что ты что-то знаешь и сдал тестовый экзамен. Тем не менее, в идеализированном модельном мире, именно такие ачивементы являются индикатором знаний. Так же, как и диплом о высшем образовании должен являться показателем того, что ты квалифицированный специалист.

Чем больше погружаешься в сообщество разработчиков, больше проникаешься этой культурой, ценностями. После определенного времени проведенного в IDE, stackOverfow и на других ресурсах, я выбрал Java, как платформу на которой буду строить свою профессиональную деятельность. По нескольким причинам - во первых меня привлекла многогранность Java. Можно делать desktop-приложения, web-приложения, запускать их на различных платформах. Кроме того, Java позволяет обучиться настоящему Computer Science. С появлением Android теперь возможно легко сделать мобильное приложение на Java (да и до андроида был Java ME). Надо ли говорить, что воображение может нарисовать при таких возможностях? А если прибавить сюда зарплаты, которые получают Java-разработчики даже в регионах РФ, которые дают перспективы для социального лифта?

Конечно я уже давно задумал получить сертификаты по Java, прямо сразу как узнал про них. Для меня это стало почему-то важным. Может быть все дело в статьях о различных sucess story. Правда везде и все, кто их получил, пишут, что сертификат - это так, для галочки. Поэтому, я не сильно переживал за немедленное получение сертификатов. Тем более, что фактическое выполнение работы требует все-таки знаний другого рода.

четверг, 28 ноября 2013 г.

JVisualVM: Local Applications Cannot Be Detected


В один момент мне понадобилось отпрофилировать свое приложение. Но не тут то было, выскочило окошко о том, java приложения не могут быть найдены.

суббота, 6 апреля 2013 г.

Пример работы с HSQLDB



При разработке распределенного приложения часто возникает необходимость использовать базу данных. Один из признаков гибкой разработки является возможность сменить базу данных в процессе создания программного продукта без изменения в коде.

HSQLDB предоставляет нам возможность не устанавливая дополнительного ПО использовать SQL базу данных в нашем приложении. Причем подключение к базе происходит с помощью JDBC драйвера. А это значит, что мы можем просто поменять базу данных на любом этапе разработки и, даже, использования приложения.

воскресенье, 24 марта 2013 г.

Программируем на Java NASA style

6 Августа я сопереживал команде NASA, управляющей посадкой марсохода Curiosity. Эти непередаваемые "7 минут ужаса" сделали меня отчасти причастным к технологическому прогрессу человечества. И было приятно осознавать, что со мной вместе наблюдают и ожидают первых фотографий более 200 000 человек онлайн и центр управления полетами NASA.

А недавно NASA порадовала тем, что у нее есть свой Java coding standart http://lars-lab.jpl.nasa.gov/. И я о нем обязательно еще поговорю, но сейчас я просто оставлю этот файл здесь.

Java coding style (NASA)

вторник, 12 февраля 2013 г.

План изучения J2EE и веб программирования


26 января 2013 года состоялся вебинар "Пошаговый план изучения J2EE и веб программирования" Тимур Батыршинова. Я захотел посетить его с целью немного расширить кругозор и по возможности узнать ответы на некоторые свои вопросы. Так сказать взглянуть на свой прогресс со стороны. Предыдущий вебинар по Java был о настолько элементарных темах, что у меня заранее не было иллюзий получения ответы на все вопросы. Но даже если узнать немного "живой" информации, это уже хорошо. Поэтому я выделил время и теперь вкратце изложу суть презентации, прибавлю свои комментарии.

вторник, 11 декабря 2012 г.

Клиент JAVA для web service ЦБ РФ

Чтобы получить курс валют за любое число, можно сделать клиент веб сервиса. Но есть некоторые нюансы при использовании стандартных компонент Java. Сам сервис располагается по адресу http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx. Здесь представлен один из способов получить данные.

Создаем стандартный проект в eclipse  идем в консоли в корень проекта и выполняем команду.

wsimport -d bin -s src http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL

четверг, 6 декабря 2012 г.

JAVA библиотека padeg

В свободный доступ вышла библиотека padeg. Она позволяет склонять имена, фамилии и нарицательные имена в нужном падеже. В сети встречается сравнение различных библиотек склонения. Эта библиотека имеет процент ошибок 2,5%. В то время как платный аналог за 50000 руб. на сервер имеет 1% ошибок. Прикрепляю библиотеку и пример использования.

Пример можно посмотреть здесь:
https://test-rlab.rhcloud.com/

padeg-3.3.0.24-javadoc.jar
padeg-3.3.0.24.jar

Пример кода под катом