2016-06-03 17 views
11

Tôi sử dụng Spring 4.2.6.RELEASE. Trong thời gian khởi của ứng dụng của tôi tôi nhận được một cảnh báo như vậy:Cảnh báo về các khai báo ConfigurationClassPostProcessor không tĩnh trên các lớp @Configuration

[WARN] org.springframework.context.annotation.ConfigurationClassPostProcessor enhanceConfigurationClasses: Không thể tăng cường @Configuration đậu nét 'org.springframework.security.oauth2. config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration $ TokenKeyEndpointRegistrar ' vì bản sao đơn của nó đã được tạo quá sớm. Nguyên nhân điển hình là là phương thức @Bean không tĩnh với loại trả về là: BeanDefinitionRegistryPostProcessor: Xem xét khai báo các phương pháp như 'tĩnh'.

Tôi đã tìm thấy jira cho một vấn đề rất giống nhau:

https://jira.spring.io/browse/SPR-14234

nhưng nó được đánh dấu là đóng cửa và cần được cố định trong 4.2.6.RELEASE.

+1

Tôi muốn hỏi cách tránh thông báo này ngoài việc tắt tính năng này trong cấu hình ghi nhật ký. Tôi đang nói Trong cùng một dự án, tôi có hai lớp @Configuration với một lớp '@Bean public static ' -method. Một kết quả trong thông điệp đó, cái kia thì không. – sjngm

+0

Tại sao việc bạn thực hiện theo lời khuyên trong thông điệp cảnh báo là không thực tế và xác định phương thức định nghĩa bean của bạn là 'static'? Và để cho phép tôi cung cấp cho bạn câu trả lời thực sự: bạn có thể vui lòng cung cấp lớp chú thích '@ Configuration' của mình không? –

+0

Tôi nghĩ rằng vấn đề là với AuthorizationServerEndpointsConfiguration là một lớp Spring không phải của tôi. Liệu tôi có sai? –

Trả lời

-1

Có lẽ điều này giúp (hoặc không) ...

@RunWith(SpringRunner.class) 
@DataJpaTest 
public class TestMyImpl { 
... 

Tôi đang sử dụng 4.3.4.RELEASE và có cảnh báo sau đây cho khối mã trên:

2016-12-30 07: 33: 04.296 WARN 2000 --- [main] oscaConfigurationClassPostProcessor: Không thể nâng cao định nghĩa bean @Configuration 'embeddedDataSourceBeanFactoryPostProcessor' kể từ khi cá thể đơn của nó đã được tạo quá sớm. Nguyên nhân điển hình là phương thức @Bean không tĩnh với kiểu trả về BeanDefinitionRegistryPostProcessor: Xem xét khai báo các phương thức như là 'tĩnh'.

Kể từ khi tôi sử dụng @DataJpaTest mà tự động cấu cơ sở dữ liệu kiểm tra (h2 trong trường hợp này) bằng cách thay thế bất kỳ dataSource nó tìm thấy, hành vi được mong đợi và muốn. Cảnh báo là xác nhận về hành vi ghi đè của @DataJpaTest.

@RunWith(SpringRunner.class) 
@DataJpaTest 
@AutoConfigureTestDatabase(replace=Replace.NONE) 
public class TestMyImpl { 
... 

Bằng cách tắt tính năng tự động định cấu hình (như được hiển thị ở trên) cảnh báo biến mất. Hiện tại, datasource có thể được định cấu hình như bình thường.

Các vấn đề liên quan