我检查了许多例子,但它们通常是关于用@Repository或@Service等标记类...例如,这里是关于要扫描的包,我不确定我应该在哪里以及以哪种方法进行扫描。
我有一个简单的应用程序和一个用户模型,UserRepository扩展了JPA存储库和一个服务。当我尝试连接数据库时,默认设置是可以的,但每当我想使用自定义配置时,程序就找不到UserRepository类,即使我将其标记为@Repository。程序仍然需要存储库类配置bean。
以下是我的服务方法:
@Service
public class UserService {
@Autowired
UserRepository userRepository;
public User findById(Long id) {
return userRepository.findById(id).get();
}
}
该模型是:
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Builder
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
private Date birthday;
}
用户存储库类:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
以下是我试图实现的配置:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "entityManagerFactory",
transactionManagerRef = "transactionManager")
public class UserDbConfig {
@Primary
@Bean("dataSource")
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/testSchema");
dataSource.setUsername("root");
dataSource.setPassword("root");
return dataSource;
}
@Primary
@Bean(name = "entityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
EntityManagerFactoryBuilder builder,
@Qualifier("dataSource") DataSource dataSource
) {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(true);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("com.practice.multiDatabase.model");
factory.setDataSource(dataSource());
return factory;
}
@Bean("transactionManager")
public PlatformTransactionManager transactionManager(@Qualifier("entityManagerFactory") EntityManagerFactory entityManagerFactory) {
JpaTransactionManager txManager = new JpaTransactionManager();
txManager.setEntityManagerFactory(entityManagerFactory);
return txManager;
}
}
输出为:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field userRepository in com.practice.multiDatabase.service.UserService required a bean of type 'com.practice.multiDatabase.repository.UserRepository' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.practice.multiDatabase.repository.UserRepository' in your configuration.
额外说明:每当我将此添加到main方法时
@SpringBootApplication(scanBasePackages = {
"com.practice.multiDatabase.repository",
"com.practice.multiDatabase.controller",
"com.practice.multiDatabase.service",
//"com.practice.multiDatabase.config"
//, "com.practice.multiDatabase.model"
})
public class MultiDatabaseApplication {
public static void main(String[] args) {
SpringApplication.run(MultiDatabaseApplication.class, args);
}
}
程序正在工作,但可能忽略了配置文件,因为我已经显式地编写了controller服务存储库,如果我也取消了对配置文件夹的注释,那么仍然会出现相同的错误
我认为您错过了要创建的存储库的另一个重要注释。
@EntityScan({"com.practice.multiDatabase.model"})
然后可以找到您的实体模型,并成功创建您的存储库!
我找不到关于beans xml配置的文档,所以我在这里问:在 在概念上与Java中的包相同吗? 例如,在我的src/main/java(Eclipse中的项目资源管理器视图,平面包演示)中,假设我有4个包com.amazon、com.amazon.entities、com.amazon.services、com.amazon.repositories.在Navigator视图中,我只有“amazo
我是一名spring boot学习者,所以我一直在尝试创建一些基本的spring boot应用程序。我试图运行开发的应用程序时出错。 我的错误是[[https://i.stack.imgur.com/oyQDi.png][1]][1] java: ItemDetails.java:[软件包名称:io.ajithan.springbootstarter.model] ItemResponse.jav
结构没有问题。spring boot可以扫描UserMapper,但不能扫描UserService。我试着给我的UserService@Mapper组件,然后它就可以被扫描了。但我不知道如何使用其他方法进行扫描。我尝试了@服务,但不起作用。
我在尝试运行我的应用程序时遇到以下错误: com.alon.service.EmployeeServiceImpl中得字段edao需要类型为“com.alon.Repository.EmployeeRepository”得bean,但找不到该bean. 注入点有以下注释: null EmployeeServiceImpl: 我的应用程序:
在另一个项目中实现之前,我一直试图按照这里的教程设置演示,以帮助我理解本地机器上的SSO。我遇到了一个使我陷入困境的问题。我收到错误通知我添加一个bean。请让我知道我缺少了什么代码。我无法使程序运行。 文件系统树 authApplication.java 应用程序.属性 给出错误(不是运行的全部控制台输出,但这是错误)
我有一个java项目,它将Spring Boot与JPA结合使用,并将Hibernate用于数据库。我正在尝试建立一个访问数据库的微服务。(我不熟悉微服务和Spring Boot)。 以下是主要课程: IGmCircularsDAO. class: GMCircularsDAOImpl。类别: ParentDAO。班 循环服务。班 当我运行这段代码时,我遇到了以下错误,我已经陷入其中一段时间了。