COI (Inversão se Control) - O controle de inversão é uma das duas tecnologias principais da primavera. O COI geralmente é dividido em dois tipos: injeção de dependência (DI) e pesquisa de dependência
Exemplo de uso:
1. Crie um novo projeto e importe pacotes JAR relacionados à mola.
2. Crie uma nova camada de acesso a dados e camada lógica de negócios
Estrutura de código:
Exemplo de código:
/*** entidade bean* @author bc**/public class Usuário {private ID ID; String private String UserName; private String senha; // Obtenha o método de definição omitido}/*** Interface da camada de acesso a dados* @Author BC**/public Interface UserDaInterface {/** query INFORMATION*/public @Author bc**/public class UserdaoImpl implementa UserDaointerface {/** simular dados do banco de dados*/Lista privada <suser> userList; public userdaoimpl () {userList = new ArrayList <usuário> (); user u = novo usuário (1, "zhang san", "123"); "456"); userlist.add (u); u = novo usuário (3, "wang wu", "789"); userlist.add (u); u = novo usuário (4, "zhao liU", "233"); userlist.add (u);}@anúncios públicos »» »}/userrList (); interface*@author bc**/interface pública userBizInterface {/** consulta todas as informações do usuário*/list public <suser> getUserList ();}/***lógica de negócios a classe de implementação de lógica*@author bc**/public classe userBizimpl implemmentsfinterface {** usa spring injeção*/private getUserList () {return userdao.getUserlist ();}/** injetado através do método de conjunto; portanto, as propriedades que precisam ser injetadas devem ser definidas para o método de set*/public void setUserdao (userdaInterface userDao) {this.UserDao = userDao;} userDaned) userdao;}}3. Escreva o arquivo de configuração ApplicationContext.xml
Informações do cabeçalho:
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
Código de configuração:
<!-Objeto da camada de acesso a dados: userDao-> <bean id = "userdao"> </i bean> <!-objeto de camada lógica de negócios: userbiz-> <bean id = "userbiz"> <!-injetar propriedades de acesso a dados através do método de set-> <name = "userDao" = "userdao beno"/>
Código de teste:
public class UserBizTest {private ApplicationContext ctx; @Before public void load () {// Leia o arquivo de configuração ApplicationContext.xml ctx = new ClassPathXMLApplicationContext ("ApplicationContext.xml");}@teste public void getUSerListTestT () {/ Crie um lógico BUNESSOT (}}@public void getUSerListTest () {/ // Crie um lógico BUNESSOT (}}@public void getUSerList () ctx.getbean ("userbiz"); // chamando o método para obter a lista de informações do usuário <suser> userList = userdao.getUserList (); // transferir a coleção para (usuário do usuário: userlist) {System.out.println (user.getId () + "|" + user.getUshame () + "" |No código de exemplo acima, usamos o conjunto de injeção de método. Existem muitos tipos de métodos de injeção de mola e muitos tipos de tipos de atributos injetados. Consulte os detalhes:
Uma breve discussão sobre o método de injeção do COI da mola e a injeção de diferentes tipos de dados
Sobre o escopo dos feijões
Scope = "Singleton" Padrão, indica que há apenas uma instância de feijão compartilhada no recipiente da primavera
scope = "protótipo" Obtenha uma nova instância do contêiner cada vez
Scope = "Solicitação" Cada solicitação HTTP criará uma nova instância do feijão
Scope = "Sessão" Compartilhe uma instância de feijão com a mesma solicitação HTTP
Scope = "Global Session" Compartilhe uma instância de feijão com a mesma sessão global
Resumir
O exposto acima é o conteúdo inteiro deste artigo sobre o exemplo simples do COI da primavera e a análise de atributos do escopo dos grãos. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!