1. Introdução às anotações
1. O que é um comentário
(1) A anotação é uma marca especial de código, formato: @ Nome da anotação (nome do atributo = valor do atributo, nome do atributo = valor do atributo ...)
(2) Use anotações, as anotações são aplicadas a classes, métodos e atributos
(3) Use anotações Objetivo: simplificar a configuração do xml
2. Spring fornece anotações para a criação de objetos no gerenciamento de Bean
(1) @Component : uma anotação universal que pode ser usada para criar qualquer objeto
(2) @Service : geralmente usado na camada de lógica de negócios ou camada de serviço
(3) @Controller : geralmente o mesmo que a camada Web
(4) @Repository : Geralmente usado para camada DAO
As quatro funções de anotação acima são as mesmas e podem ser usadas para criar instâncias de bean
- Observe que as anotações precisam ser importadas para o pacote aop mostrado abaixo
2. Como usar anotações? um exemplo
(1) Introduzir dependência
(2) Ligue a varredura de componente
- Apresente o namespace:
- Ativar verificação de componente
(3) Crie uma classe e adicione anotações à classe
-
Adicione a anotação @Component (value = "userService") à classe chamada, onde value é equivalente ao atributo id em XML
-
Para testar se a anotação foi bem-sucedida, observe que bean1.xml deve ser lido, porque a varredura de componente está habilitada em bean1.xml
4. Ative a configuração detalhada de verificação de componente
<!--示例1 use-default-filters="false" 表示现在不使用默认filter,自己配置filter context:include-filter,设置扫描哪些内容-->
<context:component-scan base-package="com.atguigu" use-defaultfilters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>
<!--示例2 下面配置扫描包所有内容 context:exclude-filter: 设置哪些内容不进行扫描-->
<context:component-scan base-package="com.atguigu">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
3. Perceba a injeção de atributos com base na anotação
(1) @Autowired: Montagem automática de acordo com o tipo de atributo
- Devido à montagem automática, não há atributo de valor, mas sim montagem automática de acordo com o tipo
- A primeira etapa é criar objetos de serviço e dao e adicionar anotações de objeto de criação às classes de serviço e dao
- A segunda etapa é injetar o objeto dao no serviço, adicionar atributos de tipo dao à classe de serviço e usar anotações nos atributos
@Autowired será montado automaticamente de acordo com o tipo de UserDaoImpl
(2) @Qualifier: injetar de acordo com o nome
Usado com @Autowired acima, no pacote Javax
(3) @Resource: pode ser injetado de acordo com o tipo, pode ser injetado de acordo com o nome
//@Resource //根据类型进行注入
@Resource(name = "userDaoImpl1") //根据名称进行注入
private UserDao userDao;
(4) @Value injeta atributos de tipo comum
- Use antes dos atributos de tipo normal
4. Desenvolvimento Totalmente Anotado
Antes, usávamos arquivos XML para ativar a varredura de componente, mas podemos usar anotações para concluir o processo de varredura, portanto, usando completamente XML.
(1) Crie uma classe de configuração para substituir o arquivo de configuração xml
@Configuration //作为配置类,替代XML
@ComponentScan(basePackages = {
"com.LinXiaoDe.spring5"})
public class SpringConfig {
}
(2) Escrever classes de teste e usar AnnotationConfigApplicationContext(SpringConfig.class)
classes de configuração de carga
para usar no SpringBoot para simplificar o desenvolvimento