Spring es uno de los marcos Java EE más populares. Es un marco ligero de código abierto que permite a los desarrolladores de Java EE 7 crear aplicaciones empresariales sencillas, fiables y escalables. Este marco se centra principalmente en proporcionar varias formas de ayudarlo a administrar sus objetos comerciales. Hizo que el desarrollo de aplicaciones web fuera mucho más fácil en comparación con los marcos Java clásicos y las interfaces de programación de aplicaciones (API), como la conectividad de base de datos Java (JDBC), JavaServer Pages (JSP) y Java Servlet. Este marco utiliza varias técnicas nuevas, como la programación orientada a aspectos (AOP), el objeto Java antiguo simple (POJO) y la inyección de dependencia (DI), para desarrollar aplicaciones empresariales. Ahora hablando de Spring Annotation.
Las anotaciones de Spring son una forma de metadatos que proporcionan datos sobre un programa. Las anotaciones se utilizan para proporcionar información complementaria sobre un programa. No tiene un efecto directo sobre el funcionamiento del código que anotan. No cambia la acción del programa compilado.
Una de las anotaciones más importantes de Spring es @ComponentScan, que se usa junto con la anotación @Configuration para especificar los paquetes que queremos escanear. @ComponentScan sin argumentos le dice a Spring que escanee el paquete actual y todos sus subpaquetes. Entonces, comprendamos la anotación @ComponentScan con un proyecto de ejemplo.
Implementación: supongamos que ya tenemos un proyecto Java y todos los archivos Spring JAR se importan a ese proyecto. Ahora vamos a crear una clase simple llamada College y dentro de la clase, tenemos un método simple.
A. Archivo: Universidad.java
Java
// Java Program to Illustrate College Class package ComponentAnnotation; // Class public class College { // Method public void test() { // Print statement whenever this method of // College class is called System.out.println("Test College Method"); } }
Ahora vamos a crear un Bean para esta clase dentro del archivo beans.xml . A continuación se muestra el código para el archivo beans.xml .
B. Archivo: beans.xml
XML
<?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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <bean id="collegeBean" class="ComponentAnnotation.College"></bean> </beans>
Pero no queremos crear el bean por este método. Queremos usar alguna anotación para hacer esta tarea. Entonces podemos usar la anotación @Component para hacer la misma tarea. Entonces podemos modificar nuestro archivo College.java algo como esto.
C. Archivo: Modificado College.java
Java
// Java Program to Illustrate Component Annotation // Indulgence in College Class package ComponentAnnotation; // Importing required classes import org.springframework.stereotype.Component; // Annotation @Component("collegeBean") // Class public class College { // Method public void test() { // Print statement whenever this method is called System.out.println("Test College Method"); } }
Pero en este caso, tenemos que escribir la siguiente línea dentro del archivo beans.xml .
<context:component-scan base-package="ComponentAnnotation"/>
Nota: Pero no queremos usar el archivo beans.xml completo en nuestro proyecto. Entonces, ¿qué podemos hacer para reemplazar el archivo beans.xml ? En general, beans.xml es un archivo de configuración. Entonces, podemos crear una clase de configuración en Java y simplemente hacer que esta clase sea nuestra clase de configuración simplemente usando la anotación @Configuration . Sí, podemos hacer eso. Así que ahora vamos a crear otra clase llamada CollegeConfig. Una cosa más es que también tenemos que usar @ComponentScananotación porque necesitamos escanear todos nuestros componentes. En este paquete particular «ComponentAnnotation», independientemente de las clases presentes, la anotación @Component va a crear el bean para eso, y para hacerlo dentro de las clases de configuración, necesitamos definir nuestro paquete base como se muestra a continuación:
@ComponentScan(basePackages = "ComponentAnnotation")
A continuación se muestra el código para el archivo CollegeConfig.java
D. Archivo: CollegeConfig.java
Java
// Java Program to Illustrate Configuration of // College Class package ComponentAnnotation; // Importing required classes import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; // Annotation @Configuration @ComponentScan(basePackages = "ComponentAnnotation") // Class public class CollegeConfig { }
Ahora, para verificar nuestra aplicación, creemos un método principal dentro de nuestra clase Principal. A continuación se muestra el código del archivo Main.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
E. Aplicación o archivo principal: Main.java
Ejemplo
Java
// Java Program to Illustrate Application Class package ComponentAnnotation; // Importing required classes import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; // Main class public class Main { // Main driver method public static void main(String[] args) { // Using AnnotationConfigApplicationContext // instead of ClassPathXmlApplicationContext // Because we are not using XML Configuration ApplicationContext context = new AnnotationConfigApplicationContext( CollegeConfig.class); // Get the bean and storing it in // a object of College class type College college = context.getBean("collegeBean", College.class); // Invoking the method // inside main() method college.test(); } }
Producción:
Test College Method
Publicación traducida automáticamente
Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA