一、代码层面优化
1.使用缓存
- 利用 Spring Cache 注解,如@Cacheable、@CacheEvict等,可以减少对数据库或其他资源的重复访问。
- 示例代码:
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Cacheable("users")
public User getUserById(Long id) {
return userRepository.findById(id);
}
}
- 代码解释:
- 这里使用了@Cacheable(“users”)注解,当调用getUserById方法时,Spring 会首先检查名为users的缓存中是否已经存在该用户信息。如果存在,则直接从缓存中获取,避免了再次调用userRepository.findById(id)去数据库查询,提高了性能。
2.避免不必要的对象创建
- 尽量减少在循环中创建对象,可使用对象池(如Apache Commons Pool)或重用对象。
- 示例代码:
import org.apache.commons.pool2.ObjectPool