Os principais problemas deste artigo são usados para implementar a montagem de atributos usando a anotação @Resource, que envolve a injeção de dependência - montagem manual, a diferença entre as anotações @Autowired e @Resource, etc., da seguinte forma.
Use injeção de campo (para método de anotação): Injetar objetos dependentes pode ser montado manualmente ou montado manualmente automaticamente. A montagem manual é recomendada em aplicações práticas, porque a montagem automática causará situações desconhecidas e os desenvolvedores não podem prever o resultado da montagem final.
Injeção de dependência - montagem manual
Existem dois métodos de programação para montar manualmente objetos dependentes.
1. No arquivo de configuração XML, configure -o através do nó do feijão, como:
<bean id = "OrderService"> // injeção de construtor <construtor-arg index = "0" type = "java.lang.string" value = "xxx"/> injeção de método do setter de propriedade <nome da propriedade = "name" value = "zhao"/> </bean>
2. Use a anotação @Autowired ou @Resource para montar no código Java. Mas precisamos configurar as informações no arquivo de configuração XML
<beans Xmlns="http://www.springframework.org/schema/beans" Xmlns="http://www.w3.org/2001/XMLSchema-instance" Xmlns:context="http://www.springframework.org/schema/context" Xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5xsd"></beans>
Esta configuração registra implicitamente vários processadores que analisam comentários:
AnoTationBeanPostProcessor de anotação automática, CommonannotationBeanPostProcessor
PersistenceanNotationBeanProcessor, requerirannOnationBeanPostProcessor
3. Diferença
Use a anotação @Autowired ou @Resource para montar no código Java. A diferença entre essas duas anotações é que o @Autowired é montado por tipo por padrão @Resource é montado pelo nome por padrão. Somente quando um feijão que corresponde ao nome não pode ser encontrado, ele será montado por tipo
@AutowiredPrivate persondao persondao; // usado no campo @autowiredpublic void setORDORDDAO (OrderDao OrderDao) {this.orderdao = OrderDao; // usado no método setter da propriedade}A anotação @Autowired deve montar objetos dependentes por tipo. Por padrão, exige que os objetos dependentes existam. Se os valores nulos forem permitidos, poderão ser definidos como falsos; Se quisermos montar com o nome, podemos usá -lo em conjunto com a anotação @qualfier, como segue:
@Autowired@Qualifier ("Persondao") Private Persondao Persondao;A anotação @Resource, como @Autowired, pode ser anotada no método setter de um campo ou propriedade, mas é montado pelo nome por padrão. O nome pode ser especificado através do atributo de nome do @Resource; Se o atributo de nome não for especificado, quando a anotação estiver marcada no campo, o nome do campo padrão será usado como o nome do feijão para procurar o objeto de dependência; Quando a anotação é marcada no método do setter de propriedades, o nome do atributo é usado como o nome do feijão para procurar o objeto de dependência
@Resource (name = "persondaBean") privado persondao persondao;
Nota: Se o atributo de nome não for especificado e o objeto ainda não for encontrado por padrão, a anotação @Resource voltará à montagem por tipo. Mas uma vez que o atributo de nome é especificado, ele só pode ser montado pelo nome.
Resumir
O exposto acima é toda a explicação detalhada da implementação do Código de Assembléia de Atributos por meio da anotação @Resource. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a este site:
" Explicação detalhada do método e do código de instanciação da primavera "
" Método de fábrica de instância da primavera e código de exemplo de fábrica estática" Código "
" A primavera usa o código para ler as propriedades da análise da instância do arquivo "
Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!