Tag: 弹簧引导

使用@Cacheable时,Spring Boot不会自动启动记录器

我看到一个奇怪的行为。 每当我用下面的方法注解一个方法: @Cacheable("contacts") (主类用@EnableCaching注解)在任何方法中,我把这个logger变量作为null : private val logger = LoggerFactory.getLogger(ProductCriteria::class.java) 如果我把它拿出来,它已经不是null了。 从我的调试,似乎cglib正在创建一些类的代理,以提供缓存。 但是,这个代理没有正确初始化,因为它似乎。 是由设计,一个限制还是我失去了一些东西?

如何使@Autowired在普通班的工作?

这是我得到的: @Component class FooController { fun createFoo() { val foo = FooEntity() foo.name = "Diogo" fooRepository.save(foo) } @Autowired internal lateinit var fooRepository: FooRepository } 尝试调用createFoo() ,出现以下错误: kotlin.UninitializedPropertyAccessException: lateinit property fooRepository has not been initialized 我认为在顶部添加一个@Component会使我的类在Spring中被发现,从而使@Autowired能够工作,但也许我错了?

在Spring Boot 2.0.0.M1中将Jackson配置为“全局”使用SNAKE_CASE

我使用Spring Boot 2.0.0.M1 (因此Spring 5.0.0.RC1 )。 我试图将其配置为使用PropertyNamingStrategy.SnakeCaseStrategy.SNAKE_CASE但到目前为止我不工作。 我试过了: 具有以下内容的application.yml文件: spring: jackson: property-naming-strategy: SNAKE_CASE 配置Jackson2ObjectMapperBuilder bean: @Bean @Primary open fun jacksonBuilder(): Jackson2ObjectMapperBuilder { val jacksonMapperBuilder = Jackson2ObjectMapperBuilder() .failOnUnknownProperties(false) .modules(JavaTimeModule(), KotlinModule()) .propertyNamingStrategy(PropertyNamingStrategy.SnakeCaseStrategy.SNAKE_CASE) logger.info { "Jackson2ObjectMapperBuilder configured successfully…" } return jacksonMapperBuilder } 配置一个ObjectMapper bean: @Bean @Primary open fun objectMapper(): ObjectMapper { val objectMapper = ObjectMapper() objectMapper.registerModule(JavaTimeModule()) objectMapper.registerModule(KotlinModule()) objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SnakeCaseStrategy.SNAKE_CASE) […]