воскресенье, 30 ноября 2014 г.

CORS в Spring Boot приложении

Для добавление поддержки CORS в Spring Boot приложение необходимо лишь добавить класс фильтра. Пример ниже:
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Component;

@Component
public class SimpleCORSFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
        ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
        chain.doFilter(req, res);
    }

    public void init(FilterConfig filterConfig) {
    }

    public void destroy() {
    }
}

пятница, 28 ноября 2014 г.

Сборка проекта OSB из maven.

Pom файл  и скрипт для деплоя проекта на Oracle Service Bus можно найти тут. Предварительно необходимо прописать в Pom файл свои настройки.

среда, 26 ноября 2014 г.

Кастомное событие для JQuery на изменение текстового поля

Когда-то стояла передо мной задача сделать так чтобы при изменении значения текстового поля на веб странице изменялся и другой компонент. При этом все это должно было работать в любом браузере и обрабатывать такие события как удаление, вырезание как через Ctr +C (x) так и из контекстного меню.

вторник, 25 ноября 2014 г.

TTL индексы в MongoDB. Обновление expireAfterSeconds из Java

TTL индекс это индекс который MongoDB использует для автоматического удаления документов из коллекции после истечения определенного промежутка времени.
Иногда необходимо иметь возможность прямо из Java приложения изменить expireAfterSeconds в TTL индексе. Для этого можно использовать подобный код:

import java.net.UnknownHostException;

import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.MongoTemplate;

import com.mongodb.MongoClient;

public class ChangeTtlIndex {
    public static void main(String[] args) throws UnknownHostException {
        MongoOperations mongoOperations = new MongoTemplate( new MongoClient(), "testDb");
        String command = "{collMod: 'testCollection', index: {keyPattern: {testField:1}, expireAfterSeconds: 3000}}";       
        mongoOperations.executeCommand(command);
    }
}


testDb - имя базы
testCollection - имя коллекции
testField - имя поля по которому создан TTL индекс.

понедельник, 24 ноября 2014 г.

Spring Boot. SSL для встроенного Tomcat.

Для включения поддержки SSL на встроенном Tomcat необходимо добавить в classpath файл application.properties со следующим содержимым:
server.ssl.key-store=classpath:key.jks
server.ssl.key-store-password=123456
server.ssl.key-password=123456
Так же в classpath  необходимо не забыть положить файл *.jks

Немного о Spring Boot.



Spring Boot позволяет значительно упростить создание web приложений на основе Spring.  При этом большинство Spring Boot приложений обходятся почти без конфигурации Spring.
Spring Boot приложение можно запускать как “java -jar” или задеплоив war на какой-либо контейнер сервлетов.

воскресенье, 23 ноября 2014 г.

Java Enum. Singleton паттерн.

По мнению многих это самая лучшая реализация паттерна “Singleton”. Данный метод был предложен Джошуа Блохом. Рекомендую к прочтению его книгу “Java.Эффективное программирование”
public enum EnumSingleton {
    INSTANCE;
} 
Минус такой реализации: не ленивая инициализация