Спасибо всем, кто откликнулся. Я обнаружил, что вы не можете автоматически связать статическое поле, и попытался
@Component
public class Test {
@Autowired
private ContactService service;
public static void main(String[] args) {
Test test = new Test();
Contact contact = new Contact("handro1104@gmail.com", "handro");
ContactService service = test.service;
service.save(contact);
}
Но это тоже не сработало. Я тоже пробовал
public class Test {
public static void main(String[] args) {
ContactService service = new RepositoryContactService();
Contact contact = new Contact("handro1104@gmail.com", "handro");
service.save(contact);
}
С
@Resource // Also tried with @Autowired
private ContactRepository repository;
@Configurable
public class RepositoryContactService implements ContactService {
@Override
public void save(Contact updated) {
repository.save(updated);
}
Но хранилище здесь было пустым.
Для большей ясности, у меня есть
@Configuration
@ComponentScan(basePackages = { "com.packtpub.springdata.jpa.service" })
@EnableTransactionManagement
@EnableWebMvc
@EnableJpaRepositories("com.packtpub.springdata.jpa.repository")
@PropertySource("classpath:application.properties")
public class ApplicationContext extends WebMvcConfigurerAdapter {
Так что RepositoryContactService сканируется и ContactRepository в com.packtpub.springdata.jpa.repository может быть подключен автоматически. В какой-то момент я даже добавил com.packtpub.springdata.jpa.repository в @ ComponentScan.