当前位置: 首页 > 知识库问答 >
问题:

Spring Boot自动在configuration类中给出null

舒博雅
2023-03-14

我正在尝试在Configuration类中自动生成一个类,如下所示:

    @Configuration
    public class GemfireConfig {
    @Autowired
    private CloudCacheDataLoader loader;

    @Bean(name = "VariableRangeCache")
            ClientRegionFactoryBean<Long, VariableRange> variableRangeRegion(
                    @Autowired ClientCache gemfireCache) {
                ClientRegionFactoryBean<Long, VariableRange> orderRegion = new ClientRegionFactoryBean<Long, VariableRange>();
                orderRegion.setCache(gemfireCache);
                orderRegion.setClose(false);
                orderRegion.setShortcut(ClientRegionShortcut.CACHING_PROXY);
                orderRegion.setLookupEnabled(true);
                logger.info("Dataloader initialized with - " + loader);
                orderRegion.setCacheLoader(loader);
                return orderRegion;
            }
}
    @Component
    @Qualifier("cloudCacheDataLoader")
    public class CloudCacheDataLoader implements CacheLoader<Long, VariableRange>{


        private static final Logger logger = LoggerFactory
                .getLogger(CloudCacheDataLoader.class);


        @Autowired
        CacheDataService dataService;

        @Autowired
        CacheService cacheService;
        }

[编辑]在我的日志中没有例外,因为如果该对象为空,将不会使用该对象。下面是我在日志文件中看到的日志条目:

2018-02-16T16:01:30.300-05:00 [APP/PROC/WEB/0] [OUT] [info 2018/02/16 21:01:30.296 UTC <Cache Client Updater Thread on localhost(cacheserver-94c0919e-80d5-4675-bb69-741728f64577:8620)<v3>:49152(version:UNKNOWN[ordinal=70]) port 40404> tid=0x25] Cache Client Updater Thread on localhost(cacheserver-94c0919e-80d5-4675-bb69-741728f64577:8620)<v3>:49152(version:UNKNOWN[ordinal=70]) port 40404 (localhost:40404) : ready to process messages.
2018-02-16T16:01:30.300-05:00 [APP/PROC/WEB/0] [OUT] [info 2018/02/16 21:01:30.299 UTC <main> tid=0x1] Pool DEFAULT started with multiuser-authentication=false
2018-02-16T16:01:30.359-05:00 [APP/PROC/WEB/0] [OUT] 2018-02-16 21:01:30.358 INFO 22 --- [ main] c.c.o.e.cloudcache.POCApplication : Dataloader initialized with - null
2018-02-16T16:01:30.371-05:00 [APP/PROC/WEB/0] [OUT] 2018-02-16 21:01:30.371 INFO 22 --- [ main] o.s.d.g.client.ClientRegionFactoryBean : Falling back to creating Region

[编辑]这里是主类--

@Import(GemfireConfig.class)
@SpringBootApplication
@Profile("prod")
@EnableGemfireRepositories("cloudcache.repository")
@EnableJpaRepositories("cloudcache.repository")
@EnableDiscoveryClient  
@EnableCircuitBreaker
public class POCApplication {

    public static void main(String[] args) {
        SpringApplication.run(POCApplication.class, args);
    }

}

共有1个答案

曹旭东
2023-03-14

使用@componentScan(basepackage=“com.corp.api”)扫描所有bean(由@autowire在main中使用sre定义的类)

    @...
    @EnabledAutoConfiguration
    @ComponentScan(basepackage = "com.corp.yourmainpackage")
    public class POCApplication {
    ...
    }

检查POCApplication类上的所有注释是否是必需的,并且没有任何冲突,也不是不必要的。

 类似资料:
  • 在我的Spring项目中,我通常使用以下三个文件下的xml配置: 我已经将此bean用于在同一个applicationContext-db.xml文件中定义的Sessionfactory bean。 PS:当我删除扩展类时,我的数据源已定义,但我需要这个类来设置Spring Security ACL配置。

  • 我有一个简单的Spring Boot应用程序,其中有一个jpa存储库对象,我希望它在类中自动生成,如下所示。 下面是类 我有以下例外。

  • 我有一个在命令行上运行的springboot 2应用程序。命令行参数之一是命名中带有batchNo的fileName。我正在使用命令行参数中的fileName设置我application.properties的fileName值。示例 在我的应用程序配置文件中,我像这样从applications.properties文件中读取文件名。 我的目标是能够为每个单独的测试动态设置这个文件名。 示例 如何

  • 我正在尝试使用struts2 fileUpload拦截器在我的web应用程序中实现文件上载过程。下面是我的代码 指数jsp struts.xml 文件上传操作。JAVA 当我在index.jsp页面中选择一个pdf文件并单击上传按钮时,它给操作类的fileUpload字段赋予了空值。 我在调试模式下执行应用程序,并给出了这个 检查它返回的内容,我得到空值。

  • 我有个班叫MyConfig.java. 我的问题是,它是如何在没有任何验证或有效的情况下在Spring Boot应用程序的启动中得到验证的。我理解@Configuration类由启动时的Spring容器拾取(如果有的话,生成bean定义),javax.validator在类路径上。 下面的代码段很有意义,因为在POJO类上添加了@Valid注释: 来自 Spring Doc:- 链接此处以供参考

  • 我的问题是关于内部方法调用情况下的AOP Spring行为。 首先,您能从技术上解释一下为什么代理对象不拦截内部调用吗?其次,检查一下我对第二个示例的理解是否正确。