Primavera (5) Desarrollo de anotaciones

¡Acostúmbrate a escribir juntos! Este es el día 17 de mi participación en el "Nuevo plan diario de Nuggets · Desafío de actualización de abril", haga clic para ver los detalles del evento .

1. Desarrollo de anotaciones

Para simplificar la configuración, Spring admite el uso de anotaciones en lugar de la configuración xml.

Al igual que el archivo de configuración XML, la anotación en sí no se puede ejecutar. La anotación en sí es solo una marca. La función específica es que el marco detecta la posición de la marca de anotación y luego realiza operaciones específicas de acuerdo con la función de la marca de anotación para esta posición.

Esencialmente: todo se hace con código Java, XML y anotaciones, simplemente dígale al código Java en el marco cómo ejecutar.

2. Anotaciones comunes de primavera

2.0 Preparación del desarrollo de anotaciones

Si desea utilizar el desarrollo de anotaciones , debe activar la exploración de componentes para que se reconozcan las clases anotadas. Spring puede analizar las anotaciones.

<!--启动组件扫描,指定对应扫描的包路径,该包及其子包下所有的类都会被扫描,加载包含指定注解的类-->
<context:component-scan base-package="com.sangeng"/>
复制代码

2.1 Comprensión relacionada con la COI

2.1.1 @Componente,@Controlador,@Servicio,@Repositorio

Las cuatro anotaciones anteriores se agregan a la clase.

Todos ellos pueden actuar como etiquetas de frijol. Puede colocar el objeto de la clase anotada en el contenedor Spring.

Puede elegir cualquiera de ellos cuando los vuelva a usar. Pero las últimas 3 anotaciones son anotaciones semánticas.

Si es una clase de servicio, se requiere @Service.

Si la clase Dao requiere el uso de @Repository

Si es una clase Controllerl (que se aprenderá en SpringMVC), requiere el uso de @Controller

Si es otra clase, puede usar @Component

P.ej:

El archivo de configuración es el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="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/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--启动组件扫描,指定对应扫描的包路径,该包及其子包下所有的类都会被扫描,加载包含指定注解的类-->
    <context:component-scan base-package="com.sangeng"></context:component-scan>

</beans>
复制代码

Las clases son las siguientes:

@Repository("userDao")
public class UserDaoImpl implements UserDao {

    public void show() {
        System.out.println("查询数据库,展示查询到的数据");
    }
}

复制代码
@Service("userService")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserServiceImpl implements UserService {


    private UserDao userDao;

    private int num;

    private String str;


    public void show() {
        userDao.show();
    }
}

复制代码

La clase de prueba es la siguiente:

public class Demo {
    public static void main(String[] args) {
        //创建容器
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取对象
        UserDao userDao = (UserDao) app.getBean("userDao");
        Phone phone = (Phone) app.getBean("phone");
        UserService userService = (UserService) app.getBean("userService");
        System.out.println(phone);
        System.out.println(userService);
        System.out.println(userDao);
    }
}
复制代码

Supongo que te gusta

Origin juejin.im/post/7087432035026862111
Recomendado
Clasificación