Spring boot 통합 Spring Data Jpa, Redis 및 Spring Cache 시작 연습
User 클래스:
@Entity
@Table(name = "user")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String username;
private String password;
private String email;
... setter getter
}
클래스를 시작하려면 @EnableCaching이라는 메모를 추가해야 합니다.
@SpringBootApplication
@EnableCaching
public class SpringDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringDemoApplication.class, args);
}
}
UserRepository는 JpaRepository, PagingAndSortingRepository 두 인터페이스를 실현한다.
UserServiceImpl 클래스 구현 IUserService 인터페이스:
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private UserRepository userRepository;
@Override
@CachePut(cacheNames = "user")
public User save(User user) {
return userRepository.save(user);
}
@Override
@Cacheable(value = "user", key = "#id")
public User findById(Long id) {
Optional op = userRepository.findById(id);
User user = op.get();
return user;
}
@Override
@Cacheable(value = "user", key = "#id")
public User findByUsername(String username) {
return userRepository.findByUsername(username);
}
@Override
@Cacheable(cacheNames = "userList")
public List findAll() {
return userRepository.findAll();
}
@CacheEvict(value = "user",allEntries=true)
public void clearCache() {}
@CacheEvict(value = "user")
public void clean(Long id) {}
}
ServiceTest 클래스:
@SpringBootTest
@RunWith(SpringRunner.class)
public class ServiceTest {
@Autowired
private IUserService userService;
@Test
public void clean() {
userService.clearCache();
}
@Test
public void cleanById() {
userService.clean(1L);
}
@Test
public void get() {
User user = userService.findById(1L);
System.out.println(user);
}
}
됐어, 코드는 대충 이렇다.다음은 구덩이입니다. 1, @Enable Caching 이것은 시작 클래스에 추가하는 것을 잊지 마십시오.2. 포조의 클래스가 캐시를 하려면 반드시 Serializable 서열화 인터페이스를 실현해야 한다.3. @Cacheable의value는 비워둘 수 없고 키는 지정하지 않을 수 있습니다.4. @CacheEvict(value="user",allEntries=true)는user의 모든 캐시를 제거하는 것을 의미하며,allEntries는 기본적으로false이다.5. 목지청 캐시가 있는 경우:
@CacheEvict(value = "user")
public void clean(Long id) {}
}
OK, 초보자 한 마리, 스프링카치를 이틀 동안 깨달았고 이해가 얕았으니 양해해 주시고 나중에 천천히 추가해 주세요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.