Quero integrar o framework Spring no meu projeto, especialmente no lado do servidor.
Portanto, não quero colocá-lo na pasta WEB-INF do arquivo war.
Devo colocar um applicationContext.xml em cada camada (significa que cada projeto foi dividido em projetos distintos? (Serviços, Domínio e DAO)
Qual é a boa prática?
Respostas:
A estrutura do arquivo Maven pode ajudar com isso
Em essência, os arquivos de configuração do Spring (que podem ter qualquer nome a propósito, não apenas o genérico
applicationContext.xml
) são tratados como recursos do caminho de classe e arquivados emsrc/main/resources
. Durante o processo de compilação, eles são copiados para oWEB-INF/classes
diretório que é o local normal para esses arquivos terminarem.As variações incluem um
spring
diretório adicional (por exemplosrc/main/resources/spring
) para separar os contextos do Spring de outros recursos dedicados às estruturas de aplicativos. Você pode dividir os contextos do aplicativo em camadas dedicadas, como:e assim por diante.
E quanto a diferentes ambientes, como desenvolvimento / teste / produção?
Normalmente, sua configuração do Spring deve pegar a configuração do ambiente em seu ambiente. Geralmente, isso significa usar JNDI, JDBC, variáveis de ambiente ou arquivos de propriedades externas para fornecer a configuração necessária. Listo aqueles na ordem de preferência, já que geralmente é mais fácil administrar o JNDI do que arquivos de propriedades externas em um cluster de produção controlado.
No caso de teste de integração, pode ser necessário usar um arquivo de configuração do Spring "somente teste". Isso conteria contextos especiais que usam beans de teste ou configuração. Eles estariam presentes em src / test / resources e podem ter um
test-
prefixo para garantir que os desenvolvedores estejam cientes de sua finalidade. Um uso típico seria fornecer um DataSource não JNDI, talvez direcionado a um banco de dados HSQLDB durante os testes automatizados de construção e seria referenciado no caso de teste.No entanto, em geral, a maioria dos arquivos de contexto do Spring não precisa de modificação especializada, pois eles se movem entre as camadas. Deve acontecer que o mesmo artefato de construção (por exemplo, arquivo WAR) seja usado no dev / test / production apenas com credenciais diferentes.
fonte
Seu projeto está dividido nos módulos Maven? Nesse caso, você pode adicionar um módulo extra apenas para arquivos de configuração. Vamos chamá-lo de config-module
Essa configuração é uma sugestão. Configure seu próprio conjunto de arquivos Empacote-o como um JAR e inclua este módulo como dependência de qualquer outro módulo (web, ear's lib, outro jar).
Você terá acesso aos recursos do módulo de configuração (xml, propriedades etc.) porque eles estão no caminho de classe.
pom do módulo da web
Em seguida, use instruções de importação de arquivos de contexto externos do Spring. Por exemplo
fonte