Я пытаюсь кешировать некоторые вызовы DAO, чтобы улучшить мою производительность с помощью кеша Spring, но это не работает для меня. Ниже приведен код, который я пробовал
Основной класс:
@SpringBootApplication
@EnableCaching
@EnableAutoConfiguration
public class Test{
public static void main(String[] args) {
SpringApplication.run(Test.class, args);
}
}
Класс обслуживания:
@Transactional
@Service
public class ProjectService{
@Cacheable("project")
public Project validateProject(String resource) {
Project project = projRepo.findByName(resource.trim());
System.out.println("ProjectCache called");
if (project != null) {
return project;
} else {
project = new Project();
project.setName(resource);
return project;
}
}
}
Класс DAO
@Repository
public interface IProjectRepository extends BaseRepository<Project> {
Project findByName(@Param("projectName") String name);
}
Модель
@Entity
@Table(name = "project")
@Data
@EqualsAndHashCode
public class Project implements Serializable, ICommonEntity {
private static final long serialVersionUID = 1L;
@Id
private Integer id;
private String name;
}
Build.gradle
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:2.2.0.RELEASE
compile group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version:'2.2.0.RELEASE'
compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: "2.0.4.RELEASE"
compile group: 'org.springframework.boot', name: 'spring-boot-starter-cache', version: '2.2.0.RELEASE'
в консоли всегда печатается «ProjectCache selected»;
Пожалуйста, помогите мне кто-нибудь в этом