[Spring] InfluxDB 커스텀으로 다른 DB 사용하기

Multiple DB on Spring

스프링에서 멀티로 데이터베이스를 사용하기 위해서는 따로 Datasource를 설정해야 한다.
InfluxDB도 마찬가지라 멀티 데이터소스를 설정하여 사용하도록 한다.

Based influxDB configuration

InfluxDB를 스프링에서 사용하기 위해서 앞에서 소개했던 spring-data-influxdb(스프링부트에서 InfluxDB 사용하기)의 클래스를 먼저 알아야한다.

[Spring] 스프링부트에서 InfluxDB 사용하기

InfluxDB

NoSQL중에 오픈소스 시계열 데이터베이스로 Go언어로 개발이 됐다. 시계열 데이터의 저장 및 검색 기능에 최적화 돼있다.

스프링에서는?

InfluxDB 자체에서 따로 API를 제공하지만 일일이 다 찾아 사용하기 어려우므로 현재 제대로 제공하고 있는 오픈 라이브러리를 적용하면 사용하기 쉽다.

[Spring] 웹소켓에서 가상의 유저(Principal) 생성하기(no Security)

웹소켓에서의 유저

스프링 시큐리티(Spring Security)를 사용하는 웹서버의 경우 사용자 정보를 사용하여 인증을 진행하게 되는데 이때 클라이언트의 경우에도 자신의 고유 정보를 통해 사용자 정보와 매칭할 수 있다.
만약 시큐리티(Security)를 사용하지 않을 경우 messagingTemplate.convertAndSendToUser함수를 사용 시 sessionId를 사용해야 하는 불편함이 있는데 이럴 때 가상의 사용자를 생성하면 편하게 사용할 수 있 게 된다.

[Java] 익명 클래스에서 람다 함수로 변경

익명 클래스

1
2
3
4
5
6
7
8
9
10
public void anomymousClass() {
final String hello = FUNLEE.callHello(new Hello() -> {
@Override
public String hello(String name) {
return "Hello, " + name;
}
});

System.out.println(hello);
}

[Spring] WebSocket 특정 유저로 메세지 보내기

서버

웹소켓을 사용하여 서버에서 특정 유저로 메세지를 전달하는 방법은 두 가지인데 하나는 브로커를 통한 메세지 전달, 다른 하나는 직접 전달이다.

브로커를 통한 전달은 @SendToUser을 사용하여 쉽게 전달할 수 있으나 직접 전달 시에는 SimpMessagingTemplate으로 전달할 수 있다. 방법은 아래와 같다.

[Spring Security] 컨트롤러에서 사용자 정보 얻어오기

메서드 인자 (Principal)

1
2
3
4
@GetMapping("/index")
public void index(Pricipal principal) {
System.out.println("username = " + principal.getName());
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×