Criei um pedido da mola de arranque (0.5.0.BUILD-INSTANTÂNEO) usando Spring Initializr ( http://start.spring.io/ ), e adicionou-se uma única @RestController, uma única interface CrudRepository, e uma única classe @Entity - nada complicado. Meu Maven POM contém as seguintes dependências:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
A classe Application contém o padrão:
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
A aplicação simples é executado sem erros, mas eu decidi adicionar Spring Security para o POM para fixar os pontos finais de gestão:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Agora, o aplicativo não será iniciado, e eu recebo o seguinte:
java.lang.IllegalArgumentException: 'EntityManagerFactory' ou 'persistenceUnitName' é necessária
Caused by: java.lang.IllegalArgumentException: 'entityManagerFactory' or 'persistenceUnitName' is required
at org.springframework.orm.jpa.JpaTransactionManager.afterPropertiesSet(JpaTransactionManager.java:304)
at org.springframework.orm.jpa.JpaTransactionManager.<init>(JpaTransactionManager.java:141)
at org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.transactionManager(JpaBaseConfiguration.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
... 18 more
Quando eu remover a dependência primavera-boot-starter-segurança, o aplicativo funciona muito bem, mas sem segurança ativada. O que significa o erro? O aplicativo já usa JPA e Hibernate sem Spring Security habilitado.













