O COI geralmente é o que chamamos de reversão do controle, que também é o foco do Java e é frequentemente solicitado durante as entrevistas.
A inversão do controle (COI em abreviação inglesa) fornece o direito de criar objetos para a estrutura, que é uma característica importante da estrutura e não é um termo especial para programação orientada a objetos. Inclui injeção de dependência (DI) e pesquisa de dependência.
O COI muda a maneira como o programa adquire objetos, desde o início de um novo objeto para a criação e injeção de uma estrutura de terceiros. Estruturas de terceiros geralmente especificam qual implementação é injetada por meio da configuração, reduzindo assim o acoplamento do código-fonte.
Qual é o maior benefício do COI?
Como a geração de objetos é definida no XML, ela se tornará muito simples quando precisarmos alterar para uma subclasse de implementação (geralmente esses objetos são realistas em algum tipo de interface), basta modificar o XML, para que possamos implementar o plugue a quente de objetos (um pouco como a interface USB e o disco rígido SCIs).
O COI pode ser dividido em injeção de dependência (DI) e pesquisa de dependência de acordo com o método de implementação.
DI é a principal abordagem técnica para controlar a inversão, dividida em injeção de setter e injeção de construtor
Injeção de setter
Após instantar o feijão chamando o construtor sem parâmetros ou o método de fábrica estático sem parâmetros, o método do setter do feijão é chamado para realizar a injeção de setter.
classe pública JDBCDataSource () {private String driver; public void setDriver (string driver) {classe.ForName (driver); this.driver = driver;}} ...............Em seguida, implemente o arquivo XML de configuração de injeção de setter
<bean id = "DataSource"> <propriedade name = "driver" value = "oracle.jdbc.oracledriver"/> <propriedade name = "url" value = "jdbc: oracle: thin: @localhost: 1521: orcl"/> <nome da propriedade "")
Injeção de construtor
Isso é conseguido chamando um construtor com parâmetros. Quando o contêiner é instanciado, o construtor correspondente será executado de acordo com o tipo de parâmetro.
classe pública OracleUserdao implementa o userdao {private JDBCDataSource DataSource; public OracleUserdao (JDBCDataSource DataSource) {this.DataSource = DataSource;} ................Especifique a injeção por índice de parâmetros de construção
<bean id = "DataSource"> <proerty name = "driver" value = "oracle.jdbc.oracledriver"/> <propriedade name = "url" value = "jdbc: oracle: thin: @localHost: 1521: orcl"/> <names = "user"/"" Andreny "/> id = "userdao"> <construtor-argindex = "0" ref = "DataSource"/> </i bean>
Resumir
O exposto acima é sobre a análise do código do COI da primavera, espero que seja útil para todos. Amigos interessados podem continuar se referindo a este site:
Explicação detalhada do COI e DI da Spring
Introdução detalhada à implementação da simulação do COI da Spring
Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!