Уже неделю голову ломаю, вроде всё так и всё на месте, но что-то не вижу, подскажите, пожалуйста, что не учёл
Само исключение:
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'File.service.AddressService' available
main:
public static void main(String[] args) {
ApplicationContext applicationContext = new AnnotationConfigApplicationContext("File.settings.ApplicationConfig.class");
AddressService repositoryAddress = applicationContext.getBean(AddressService.class);
Address address = new Address();
address.setId(13L);
address.setCity("Lviv");
address.setCountry("UKraine");
address.setStreet("Shevchenka 42A");
address.setPostCode("435433");
repositoryAddress.save(address);
}
JavaConfig:
@Configuration
@EnableJpaRepositories("File.repository")
@EnableTransactionManagement
@ComponentScan("File")
@PropertySource("classpath:db.properties")
public class ApplicationConfig {
@Resource
private Environment env;
@Bean
public DataSource getDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getRequiredProperty("db.driver"));
dataSource.setUrl(env.getRequiredProperty("db.url"));
dataSource.setUsername(env.getRequiredProperty("db.user_name"));
dataSource.setPassword(env.getRequiredProperty("db.password"));
return dataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean getEntityManager() {
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setDataSource(getDataSource());
entityManagerFactoryBean.setPackagesToScan
(env.getRequiredProperty("db.entity.pages"));
entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
entityManagerFactoryBean.setJpaProperties(getProperties());
return entityManagerFactoryBean;
}
@Bean
public JpaTransactionManager getJpaTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(getEntityManager().getObject());
return transactionManager;
}
public Properties getProperties() {
Properties properties = new Properties();
InputStream inp = getClass().getClassLoader().getResourceAsStream("hibernate.properties");
try {
properties.load(inp);
} catch (IOException e) {
System.out.println("Can't find hibernate.propertis in classpath!" + e);
}
return properties;
}
}
Настройки dataSource:
db.driver = com.mysql.cj.jdbc.Driver
db.url = jdbc:mysql://localhost:3306/public?useLegacyDatetimeCode=false&serverTimezone=UTC
db.user_name = root
db.password = 1111
db.entity.pages = File.Entity
Настройки Hibernate:
hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql = true
hibernate.hbm2ddl.auto = update
JpaRepository:
public interface RepositoryAddress extends JpaRepository<Address,Long> {
}
Service:
@Service
public class AddressService implements AddressDAO {
@Autowired
private RepositoryAddress repositoryAddress;
@Override
public void save(Address address) {
repositoryAddress.saveAndFlush(address);
}
@Override
public Address getById(Long id) {
return repositoryAddress.findById(id).orElse(null);
}
@Override
public List<Address> getAll() {
return repositoryAddress.findAll();
}
@Override
public void update(Address address) {
repositoryAddress.saveAndFlush(address);
}
@Override
public void deleteById(Long id) {
repositoryAddress.deleteById(id);
}
}
AddressDAO:
public interface AddressDAO {
void save(Address address);
Address getById(Long id);
List<Address> getAll();
void update(Address address);
void deleteById(Long id);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Начал осваивать сервлеты и столкнулся с таким вопросом Файлы jsp лежат в папке web Можно ли их вынести в папку src например? И стоит ли во вьюшку...
Когда программа ещё не читала из потока, метод ready() вернёт false, хотя на самом деле в потоке есть что читатьА если один раз прочитать, то дальше...
Напечатать без повторения слова текста, у которых первая и последняя буквы совпадаютНужно составить регулярное выражение
Хочу сделать клас более гибким при помощи generics в kotlinРанее использовал их только в java и в очень примитивных случаях