我看到一个奇怪的行为。 每当我用下面的方法注解一个方法: @Cacheable("contacts") (主类用@EnableCaching注解)在任何方法中,我把这个logger变量作为null : private val logger = LoggerFactory.getLogger(ProductCriteria::class.java) 如果我把它拿出来,它已经不是null了。 从我的调试,似乎cglib正在创建一些类的代理,以提供缓存。 但是,这个代理没有正确初始化,因为它似乎。 是由设计,一个限制还是我失去了一些东西?
我试图用kotlin替换一些java代码。 如jpa或缓存。 Start类是: @EnableAsync @EnableCaching @EnableSwagger2 @SpringBootApplication open class Application fun main(args: Array<String>) { SpringApplication.run(Application::class.java) } 简单的控制器: @RestController class CacheController { @Autowired private lateinit var cache: CacheService @PutMapping("{id}") fun save(@PathVariable id: Long) { cache.save(id) } } CacheService: @Component @CacheConfig(cacheNames = arrayOf("longCacheManager"), cacheManager = "longCacheManager") open class CacheService { @Cacheable(key = "#id") fun save(id: Long): Long […]
我知道在Android的可绘制内存泄漏。 我看了很多指南,并试图自定义缓存Drawable。 我做了什么测试: public class myApp extends Application { public static HashMap<String, Drawable> test_svg_drawables = new HashMap<>(); … public void onCreate() { super.onCreate(); … test_svg_drawables.put("i1", ContextCompat.getDrawable(this, R.drawable.ic_svg_image1)); test_svg_drawables.put("i2", ContextCompat.getDrawable(this, R.drawable.ic_svg_image2)); test_svg_drawables.put("i3", ContextCompat.getDrawable(this, R.drawable.ic_svg_image3)); test_svg_drawables.put("i4", ContextCompat.getDrawable(this, R.drawable.ic_svg_image3)); } 在我的Activity onCreate(Kotlin)上: imageView1.setImageDrawable(test_svg_drawables.get("i1")) imageView2.setImageDrawable(test_svg_drawables.get("i2")) imageView3.setImageDrawable(test_svg_drawables.get("i3")) imageView4.setImageDrawable(test_svg_drawables.get("i4")) 正如大家所说,因为即时通讯使用缓存Drawables,它应该增加内存只有在第一次创建,并保持相同的内存使用情况,但这不是真的发生,看看这个内存监视器: enter image description here 为什么它在旋转屏幕的同时还在不断增长? 从40mb(首创)到110mb(经过一些轮转) 我已经有一些老版本的内存泄漏,并试图避免它再次 我应该担心吗? (在我拍照之后10分钟仍然是110mb,我完成了活动) ps1:使用svg_drawable(从AndroidStudio导入 – […]