应用程序#1将包含带有Hibernate映射的DAO模型、JPA存储库、DTO模型以及将DAO转换为DTO的逻辑。
应用程序#2将包含包含所有业务逻辑的RESTful控制器和服务类。
应用程序#1配置:
// For application startup
package com.appone.pkg.one
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
// For global configuration files across numerous projects
package com.appone.pkg.two
@Configuration
public class GlobalAppConfig {
@Bean
MapperFacade mapperFacade() {
MapperFactory factory = new DefaultMapperFactory.Builder().build();
factory.classMap(Group.class, GroupDTO.class).byDefault().register();
factory.classMap(Role.class, RoleDTO.class).byDefault().register();
factory.classMap(User.class, UserDTO.class).byDefault().register();
return factory.getMapperFacade();
}
}
// For configuration aspects important for 1 project in particular
package com.appone.pkg.three
@Configuration
@EnableJpaRepositories("com.pkg.three.jpa.repository")
public class AppTwoConfig {
@Autowired
private EntityManager em;
private RepositoryFactorySupport factorySupport;
private void initialize(){
if(factorySupport == null){
factorySupport = new JpaRepositoryFactory(em);
}
}
@Bean
GroupRepository groupRepository(){
initialize();
return factorySupport.getRepository(GroupRepository.class);
}
@Bean
RoleRepository roleRepository(){
initialize();
return factorySupport.getRepository(RoleRepository.class);
}
@Bean
UserRepository userRepository(){
initialize();
return factorySupport.getRepository(UserRepository.class);
}
@Bean
GroupValidator groupValidator(){
return new GroupValidator();
}
@Bean
UserValidator userValidator(){
return new UserValidator();
}
@Bean
ResourceMapper resourceMapper(){
return new ResourceMapper();
}
}
package com.apptwo.pkg.one;
@SpringBootApplication
@EnableAutoConfiguration
@EntityScan(basePackageClasses = {com.appone.pkg.three.AppTwoConfig.class})
public class ApplicationTwo {
public static void main(String[] args) {
SpringApplication.run(ApplicationTwo.class, args);
}
}
应用程序#2数据加载:
package com.apptwo.pkg.two;
@Component
public class DataLoader implements ApplicationRunner {
@Autowired
private GroupRepository groupRepository;
@Autowired
private RoleRepository roleRepository;
@Autowired
private UserRepository userRepository;
@Autowired
private ResourceMapper resourceMapper;
/**
* Loads initial data into the h2 database.
*/
public void run(ApplicationArguments args) {
// Load the initial data ...
}
}
这是我尝试启动应用程序#2时遇到的例外情况。应用程序#1可以自己启动,但我没有使用那里的存储库,如果我尝试的话,我相信它可能会抛出错误。不过,最终我只想要应用程序#2中的逻辑。你对我做错了什么有什么想法吗?
我需要初始化应用程序#1配置中的所有依赖项,然后在运行应用程序#2配置之前从应用程序#2内部运行该配置。
操作:考虑在您的配置中定义一个类型为“com.appone.pkg.three.jpa.repository.GroupRepository”的bean。
多亏了几个人的共同努力,我找到了解决办法。
部分帮助来自这篇文章:在Spring Boot中不能自动连接@Repository注释接口
步骤1:
步骤2:
我像这样更改了AppTwoConfig.java,
// For configuration aspects important for 1 project in particular
package com.appone.pkg.three
@Configuration
@EnableJpaRepositories("com.pkg.three.jpa.repository")
@EntityScan("com.pkg.three.jpa.model")
public class AppTwoConfig {
@Bean
GroupValidator groupValidator(){
return new GroupValidator();
}
@Bean
UserValidator userValidator(){
return new UserValidator();
}
@Bean
ResourceMapper resourceMapper(){
return new ResourceMapper();
}
}
步骤3:
package com.apptwo.pkg.one;
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan(basePackageClasses = {
com.apptwo.pkg.one.config.AppConfig.class,
com.appone.pkg.two.GlobalAppConfig.class,
com.appone.pkg.three.AppTwoConfig.class
})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在我的Spring Boot应用程序中有POJO,下面是它的样子: 现在我想选择所有与给定值相关的方式是POJO的成员。 所以这是我的查询
我有一张按年、月、日划分的蜂巢表
我正在开发一个spring批处理应用程序(内存为2GB),尝试处理数据(在处理过程中使用select查询获取数据),并在postgres DB中插入大约100万条处理过的记录。我在这个项目中使用Spring Data JPA。但是Spring JPA在处理这些记录时消耗了太多内存
问题内容: 假设我有x1,y1,还有x2,y2。 我如何找到它们之间的距离?这是一个简单的数学函数,但是此在线代码段吗? 问题答案: dist = sqrt( (x2 - x1)2 + (y2 - y1)2 ) 正如其他人指出的那样,您也可以使用等效的内置函数:
我有3个Kafka经纪人在3个不同的VM,其中一个还运行一个Zookeeper。我现在创建一个有8个分区的主题。制作人在创建的“主题”上向这些经纪人组推送消息。 Kafka是如何在经纪人之间分配话题及其分区的? 当新的Kafka代理加入集群时,Kafka是否重新分发主题? 创建主题后是否可以增加主题分区?
我使用行人库(使用ps源、ping Goto和ps汇),想要模拟人行道环境。这个模型的目标是得到行人之间的距离小于1m的数据。所以,我尝试计算行人之间的距离。在Any逻辑中,可以通过使用getX()、getY和getId(可以每秒计算)来收集行人的信息。但是我不知道如何选择行人代理并计算它们之间的距离。我的意思是,如果有10个行人(id:1, 2, 3...),如何每秒钟获得1和2、1和3、2和3