전체 글
-
spring boot Transaction(@Transactional)카테고리 없음 2023. 4. 19. 09:58
@Transactional 적용된 메서드에서 @Transactional이 적용되지 않은 메서드를 호출할때는 Transaction이 적용된다. @Transactional이 적용되지 않은 메서드에서 적용된 메서드를 호출하면 Transaction이 무시된다. (가능하게 할수는 있다) (수정)3. @Transactional(readOnly = true)가 적용된 메서드에서 @Transactional 혹은 @Transactional(readOnly = false)가 적용된 메서드를 호출 할 경우 무조건 read-only Transaction이 적용된다. 만약 이때 R을 제외한 CUD를 할 경우 에러를 발생한다. 잘못된 정보를 다시 설명하였다. 여기로 @Transactional 혹은 @Transactional(re..
-
redis Sentinel카테고리 없음 2023. 4. 19. 09:58
redis Sentinel 설정 redis Sentinel redis를 관리하는 시스템이다. Monitoring, Notification, Automatic failover 이것들을 수행해 주는데 일단 필자가 하고 싶은건 Automatic failover 이다. slave가 죽으면 그닥 상관없지만 master가 죽으면 큰일!이다. sentinel은 slave 하는 선출하여 master로 승격시키는 failover process를 시작할 수 있다. 우리는 1개의 master, 3개의 slave, 3개의 sentinel으로 진행할 것이다. 우리는 마스터로 승격 시키기 위해 몇가지 작업을 해야한다. 테스트를 하기 위해 레디스 한개를 설치 한후 여러 Config 파일을 만들어서 진행 할 예정이다. 일단 마스터 ..
-
Spring Redis Cache카테고리 없음 2023. 4. 19. 09:58
이번시간엔 redis를 이용한 저장소 캐싱을 해보겠다. 스프링 프로젝트에서 복붙한거라.. 그리고 딱히 어려운부분은 없기에.. 일단 레디스를 설치하자. 레디스 윈도우 설치 파일 설치한 후에 레디스를 실행 시키자! public class RedisCacheManager extends AbstractCacheManager { private final RedisConnectionFactory redisConnectionFactory; private final RedisTemplate defaultTemplate; private final Map templates; private boolean usePrefix = true; private RedisCachePrefix cachePrefix = new Defaul..
-
spring boot 1.4.0 M2 Release Notes카테고리 없음 2023. 4. 19. 09:57
1.4.0 M2 Release Notes 간단하게만 정리하겠다. Spring Boot 1.4 M2 부터는 spring 4.3을 디펜더시 spring 4.3 부터는 @RequestMapping(method = RequestMethod.GET) -> @GetMapping 로 가능 POST, PATCH, PUT, DELETE 도 가능 하이버네이트 5.1로 업그레이드 위의 하이버네이트를 포함한 third-party lib upgrades (Jackson 2.7, Solr 5.5, Spring Data Hopper, Spring Session 1.2 & Hazelcast 3.6) Spring boot Image Banner 지원 banner.gif, banner.jpg, banner.png 가능 @SpringBo..
-
계승하는 대신 구성하라카테고리 없음 2023. 4. 19. 09:57
이펙티브 자바! 계승하는 대신 구성하자! 계승(상속)은 코드 재사용을 돕는 강력한 도구지만, 항상 최선이라고는 할 수 없다. 계승(상속)을 적절히 사용하지 못한 소프트웨어는 깨지기 쉽다. 한 클래스가 다른 클래스를 상속(extends) 한다는 소리이다. 인터페이스의 상속을 말하는 것은 아니다. 또한 인터페이스가 인터페이스를 상속하는 것도 포함되지 않는다. 메서드 호출과 달리 계승(상속)은 캡슐화 원칙을 위반한다. 하위 클래스가 정상 동작하기 위해서는 상위 클래스의 구현에 의존할 수 밖에 없다. 상위 클래스의 구현이 릴리즈가 거듭되면서 자주 바뀌는데 그러다 보면 하위 클래스 코드는 수정된 적이 없어도 망가질 수 있다. 따라서 상위 클래스 작성자가 계승(상속)을 고려해 클래스를 설계하고 문서가지 만드렁 놓지..
-
다시 보는 초난감 DAO카테고리 없음 2023. 4. 19. 09:57
예외처리 기능을 갖춘 DAO public class UserDao { DataSource dataSource; public UserDao(DataSource dataSource) throws SQLException { this.dataSource = dataSource; } public void deleteAll() throws SQLException { Connection c = null; PreparedStatement ps = null; try { c = dataSource.getConnection(); ps = c.prepareStatement("delete from users"); ps.executeUpdate(); } catch (SQLException e) { throw e; } finall..
-
토비의 스프링 초난감 Dao카테고리 없음 2023. 4. 19. 09:57
토비의 스피링 초난감 Dao 초난감 Dao Dao 란 데이터 엑세스 오브젝트이다. 데이터를 조회 하거나 조작하는 기능을 말한다. 우리는 흔히 쓰는 자바빈 규약에 따른 오브젝트이다. public class User { String id; String name; String password; public User() { } public User(String id, String name, String password) { this.id = id; this.name = name; this.password = password; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getNa..