Em algum lugar que li, o Spring oferece conveniência sobre a configuração. Mas o pessoal do Spring está trazendo tantas mudanças na configuração, que agora estou realmente ficando confuso ao usar a configuração xml ou a anotação.
Gostaria que alguém sugerisse uma metodologia ou regra prática infalível no uso de xml e anotações.
Exemplos no SO para mostrar que muitos iniciantes como eu estão ficando confusos com a configuração.
-
Não pareço entender a funcionalidade por trás
<context:annotation-config>
e<context:component-scan>
.Pelo que li, eles parecem lidar com anotações diferentes (@Required, @Autowired etc vs @Component, @Repository, @Service etc), mas também pelo que li, eles registram as mesmas classes de pós-processador de bean.
Para me confundir ainda mais, há um
annotation-config
atributo em<context:component-scan>
... -
Ainda tenho a tag de verificação de componente:
<context:component-scan base-package="com.mycompany.maventestwebapp" />
mas também tenho outra tag (que parece ter uma tarefa semelhante), esta:
<annotation-driven />
Qual é a diferença entre essas duas tags? Outra coisa "estranha" é que o exemplo anterior (que não usa a tag acionada por anotação) é muito semelhante ao projeto criado pelo STS usando o projeto Spring MVC Template, mas se eu excluir a tag acionada por anotação de sua configuração arquivo o projeto não é executado e me dá o seguinte erro: Status HTTP 404 - ...
O Spring 3.2 não precisa mais do cglib para proxy, mas as versões inferiores usam o cglib. Uma citação do blog da springsource
Para gerar esses proxies, o Spring usa uma biblioteca de terceiros chamada cglib. Infelizmente, este projeto não está mais ativo. No Spring 3.2, é muito provável que o Spring esteja usando Javassist, por padrão.
São suficientes para sugerir que o Spring é Confusion over configuration?