Eu criei um teste de unidade simples, mas o IntelliJ está destacando incorretamente o vermelho. marcando-o como um erro
Sem feijão?
Como você pode ver abaixo, passa no teste? Portanto, deve ser conectado automaticamente?
java
spring
intellij-idea
annotations
autowired
Robbo_UK
fonte
fonte
Respostas:
Eu tive esse mesmo problema ao criar um aplicativo Spring Boot usando sua
@SpringBootApplication
anotação. Esta anotação representa@Configuration
,@EnableAutoConfiguration
e@ComponentScan
de acordo com a referência de mola .Como esperado, a nova anotação funcionou corretamente e meu aplicativo foi executado sem problemas, mas a Intellij continuou reclamando de
@Autowire
dependências não preenchidas . Assim que voltei a usar@Configuration
,@EnableAutoConfiguration
e@ComponentScan
separadamente, os erros cessaram. Parece que o Intellij 14.0.3 (e provavelmente também versões anteriores) ainda não está configurado para reconhecer a@SpringBootApplication
anotação.Por enquanto, se os erros o perturbarem tanto, volte para as três anotações separadas. Caso contrário, ignore o Intellij ... sua resolução de dependência está configurada corretamente, pois seu teste passa.
Sempre se lembre...
fonte
@SpringBootApplication
eu estava recebendo esse erro. Segui o conselho do @ Jaõs Matos usando oscanBasePackages
parâmetro@SpringBootApplication
e especifiquei os pacotes / namespaces que devem ser verificados.Adicione anotação Spring
@Repository
sobre a classe do repositório.Eu sei que deve funcionar sem esta anotação. Mas se você adicionar isso, o IntelliJ não mostrará erro.
Se você usar o Spring Data com extensão de
Repository
classe, serão paginações de conflito. Em seguida, você deve indicar as páginas de explicação.E a seguir, você pode conectar automaticamente seu repositório sem erros.
Provavelmente não é uma boa solução (acho que você está tentando registrar o repositório duas vezes). Mas trabalhe para mim e não mostre erros.
Talvez a nova versão do IntelliJ possa ser corrigida: https://youtrack.jetbrains.com/issue/IDEA-137023
fonte
Minha versão do IntelliJ IDEA Ultimate (2016.3.4 Build 163) parece suportar isso. O truque é que você precisa ter ativado o plug-in Spring Data.
fonte
Às vezes, você precisa indicar onde o @ComponentScan deve procurar componentes. Você pode fazer isso passando os pacotes como parâmetro desta anotação, por exemplo:
No entanto, como já mencionado, a anotação @SpringBootApplication substitui @ComponentScan, portanto, nesses casos, você deve fazer o mesmo:
Pelo menos no meu caso, Intellij parou de reclamar.
fonte
@SpringBootApplication(scanBasePackages={"com.a.b, com.a.c"})
e, embora o aplicativo funcionasse bem, a intellij não gostou. Mudando para@SpringBootApplication(scanBasePackages={"com.a.b", "com.a.c"})
fixo para mim!Eu sempre resolvo esse problema fazendo o seguinte. Configurações> Inspeções> Spring Core> Código do que você muda de erro para avisar a opção de gravidade
fonte
Estou usando o spring-boot 2.0 e o intellij 2018.1.1 ultimate edition e enfrentei o mesmo problema.
Resolvi colocando @EnableAutoConfiguration na classe principal do aplicativo
fonte
Redundant declaration: @SpringBootApplication already applies @EnableAutoConfiguration
¯ \ _ (ツ) _ / ¯Verifique se você perdeu a anotação @Service na sua classe de serviço, esse foi o meu caso.
fonte
Colocar
@Component
ou@configuration
no seu arquivo de configuração de bean parece funcionar, ou seja, algo como:fonte
Se você não quiser fazer alterações no seu código, apenas para deixar seu IDE feliz. Eu o resolvi adicionando todos os componentes à faceta Spring.
fonte
Enquanto seus testes estiverem passando, você é bom, pressionando
alt + enter
o cursor sobre o erro e dentro do submenu do primeiro item, você encontrará,Disable Inspection
selecionefonte
Eu tive um problema semelhante no aplicativo Spring Boot. O aplicativo utiliza Feign (solicitações de sintetização do cliente HTTP de interfaces anotadas). Tendo
SomeClient
anotado a interface@FeignClient
, Feign gera a classe proxy de tempo de execução implementando essa interface. Quando algum componente Spring tenta autopreencher o bean do tipoSomeClient
, o Idea não reclama nenhum bean do tipoSomeClient
encontrado, pois não existe realmente nenhuma classe real no projeto e o Idea não é ensinado a entender a@FeignClient
anotação de nenhuma maneira.Solução: anote a interface
SomeClient
com@Component
. (No nosso caso, não usamos@FeignClient
anotaçãoSomeClient
diretamente, antes usamos metanotação@OurProjectFeignClient
anotada@FeignClient
e a adição de@Component
anotação também funciona.)fonte
@Component
à interface resolve o problema. Mas acho que essa não é a maneira correta ... Na minha opinião, isso é um bug no IntelliJ IDEA ou, para não ser tão difícil, o IntelliJ IDEA não está pronto para as versões mais recentes do Feign. Ele funciona sem@Component
versões falsas (onde@FeignClient
estava a anotação emorg.springframework.cloud.netflix.feign
vez deorg.springframework.cloud.openfeign
- talvez essa seja a causa do problema?). Você encontrou mais detalhes (talvez um ticket de bug) para isso?@Component
) seja@FeignClient
doorg.springframework.cloud.netflix.feign
pacote.Configure o contexto do aplicativo e tudo ficará bem.
fonte
E uma última informação importante - adicione a
ComponentScan
para que o aplicativo saiba tudo o que precisa ser conectado. Isso não é relevante no caso desta pergunta. No entanto, se não@autowiring
estiver sendo executado, é provável que seja a sua solução.fonte
O que você precisa fazer é adicionar
@ComponentScan("package/include/your/annotation/component")
noAppConfiguration.java
.Como acho que o
AppConfiguraion.java
pacote do seu é mais profundo que o pacote do componente de anotação (@Service, @Component ...),tais como
"package/include/your/annotation/component/deeper/config"
.fonte
Eu tive um problema semelhante no meu aplicativo. Quando adicionei anotações, a marcação incorreta desapareceu.
fonte
Estou usando esta anotação para ocultar esse erro quando ele aparece no IntelliJ v.14:
fonte
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
Para mim, a solução foi colocar
@EnableAutoConfiguration
na classe Application sob a forma@SpringBootApplication
de sublinhar, porque é redundante. Exclua-o e pronto, todos os avisos sobre os grãos ausentes desaparecem! Primavera parva ...fonte
no meu caso, o diretório que eu estava tentando @Autowired não estava no mesmo nível,
depois de configurá-lo no mesmo nível de estrutura, o erro desapareceu
espero que possa ajudar alguém!
fonte
Minha solução para esse problema no meu aplicativo de inicialização do Spring foi abrir o contexto do aplicativo do Spring e adicionar a classe manualmente para o bean com conexão automática ausente!
(acesse através do menu Estrutura do projeto ou janela da ferramenta Primavera ... editar "Contexto do aplicativo Primavera")
Portanto, em vez de SpringApplicationContext apenas conter minha configuração de mola ExampleApplication, ela também contém o Bean ausente:
SpringApplicationContext:
et voilà: A mensagem de erro desapareceu!
fonte
Ainda parece haver um bug no IntelliJ mais recente e está relacionado a um possível problema de armazenamento em cache?
Se você adicionar a anotação @Repository como mk321 mencionada acima, salve, remova a anotação e salve novamente, isso corrige o problema.
fonte
Tudo o que você precisa fazer para fazer isso funcionar é o seguinte código:
fonte
Eu só tinha que usar @EnableAutoConfiguration para resolvê-lo, no entanto, esse erro não teve impacto funcional.
fonte
Isso pode ser resolvido colocando @EnableAutoConfiguration na classe principal do aplicativo de inicialização por primavera.
fonte
Às vezes - no meu caso - a razão é uma importação errada. Acidentalmente importei
ao invés de
aceitando cegamente a primeira opção nas importações sugeridas pela Idea. Levei alguns minutos na primeira vez que aconteceu :-)
fonte
Surpreendentemente, um projeto orientado a Feign que foi executado com sucesso com o Eclipse não pôde ser executado no InteliJ. Quando o aplicativo foi iniciado, o InteliJ reclamou do cliente Feign que tentei injetar na camada serviceImpl dizendo: campo personRestClient (meu cliente Feign) em ... exigia um bean do tipo ... que não pôde ser encontrado. Considere definir um bean do tipo '....' em sua configuração.
Perdi muito tempo tentando entender o que está errado. Encontrei uma solução (para InteliJ) que não entendo completamente:
Ou escolha Eclipse :)
fonte
Verifique se o pacote do seu bean está escrito corretamente
fonte
Use @AutoConfigureMockMvc para a classe de teste.
fonte
Resolvi o problema instalando o plugin mybatis no IDEA. Quando instalei o Mybatis Plugin, ele desapareceu.
fonte
simples você tem que fazer 2 etapas
fonte
IntelliJ IDEA Ultimate
Adicione sua classe principal ao IntelliJ Spring Application Context, por exemplo Application.java
File
->Project Structure..
lado esquerdo: Configuração do projeto -> Módulos
lado direito: encontre na estrutura do seu pacote
Spring
e adicione+
Application.java
fonte