¿Qué es el marco de primavera?

Haré que esto sea fácil de entender en base a las siguientes preguntas que hago. La respuesta se aclarará muy pronto.

  1. Si usted es un desarrollador de Java, ¿cómo construye un sitio web en Java hoy ? Debe usar uno de los marcos de trabajo ” web ” que las empresas han creado sobre Java para servir páginas web en Internet.

Me refiero a Struts, Guice, Grails, Stripes, DropWizard, Tapestry, vaadin, GWT, JSF o incluso play (si consideras JVM wrt java).

Spring Framework es una forma de construir páginas web en Java.

Vea algunos de estos marcos web que usan Java debajo a continuación.

[Marcos web en Java]

Si no es un desarrollador de Java, puede ver diferentes marcos basados ​​en el idioma de su elección aquí.

  1. Digamos que eres un desarrollador de JavaScript . Está utilizando jQuery o Angular o Ember JS u otros marcos javascript para construir sus páginas web. Todos estos son diseños basados ​​en HTML que no tienen Java. ¿Cómo estás sacando datos para tus páginas web?

Probablemente esté buscando en las API (probablemente basadas en el descanso) que estos marcos de JavaScript pueden llamar y obtener los datos necesarios. Puedo pensar en Laravel (PHP) , Flask (Python) , Express (Node JS) , Restlet (Java) y estoy seguro de que hay algunos en .NET . Incluso puedo pensar en la base de datos disponible como Rest API ( Couchdb )

Spring (MVC) Framework le permite crear servicios RESTful de manera fácil y rápida.

  1. Si está creando una aplicación web, ¿cómo la está asegurando?

Podría estar utilizando aplicaciones de inicio de sesión único (basadas en Oracle, CA siteminder, Apache Shiro, soluciones basadas en OAuth de Facebook, Google, Twitter, etc.) o puede haber creado una desde su propia base de datos.

Spring (Security) Framework puede ayudarlo aquí. Su front-end no necesita usar Java para habilitar Spring Security.

  1. Si está exponiendo sus servicios al front-end, aún necesitará interactuar con una base de datos, una plataforma de mensajería, un servicio externo de terceros o una fuente de datos de algún tipo. ¿Cómo se asegura de que puede trabajar rápido y expandir este código más tarde si es necesario sin volver a escribir el código completo?

Vea mis criterios para elegir un marco web basado en 5 cosas clave.

Spring Framework brilla en esa área.

  1. Si no está escribiendo una aplicación web, aún necesitaría interactuar con la base de datos, probar su aplicación, ejecutar un trabajo de larga duración, interactuar con otros sistemas. ¿Cómo construye y envía su aplicación independiente hoy?

Spring Framework no está vinculado solo a la web. Spring Container le permite ejecutar su código sin ninguna dependencia en los servidores de aplicaciones.

Podría seguir con el poder que Spring Framework tiene para ofrecer. Lea más aquí si está interesado. El enlace enumera algunas ventajas clave del uso de Spring Framework.

A menos que sea nuevo en el desarrollo de Java, no se sorprenderá al ver las ofertas de Spring Framework en casi cualquier proyecto con el que sus pares estén trabajando en estos días.

Spring Framework no es una solución de un nivel. Es un ecosistema de diferentes ofertas. Vea abajo

Todo el ecosistema se explica aquí.

Ahora, para comenzar a trabajar con Spring Framework, un ejemplo de hello world no es terriblemente difícil. vea abajo.

La imagen de arriba muestra tres cosas clave:

  1. Agregue @SpringBootApplication a su aplicación principal y obtendrá un marco de prueba incorporado, incluidas todas las bibliotecas Spring, un servidor de aplicaciones listo para ejecutar con métricas habilitadas para usted de inmediato.
  2. Ahora puede tomar cualquier servicio de Java y agregarle Spring.

paquete com.springtutorials.tutorial1.services;
import org.springframework.stereotype.Service;

/ **
* @author [correo electrónico protegido]
* *
* Una implementación ficticia del servicio Spring que devuelve “OK”
* /
@Servicio
public class DummyServiceImpl implementa DummyService {

@Anular
prueba de cadena pública () {
volver “OK”;

  1. Llamar a este servicio ahora es el mismo si lo llama desde su controlador o desde la prueba de su unidad. Esto hace que el comportamiento de prueba sea similar al escenario real.

paquete com.tutorials.spring.tutorial1;

import com.tutorials.spring.tutorial1.services.DummyService;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
importar org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith (SpringRunner.class)
@SpringBootTest
clase pública HelloWorld {

@Autowired
DummyService privado dummyService;

@Prueba
prueba de vacío público () {
Assert.assertEquals (dummyService.test (), “OK”);
}
}

Si te interesa el Spring Framework, puedes comenzar tu primer tutorial de Hello World Spring aquí.

Aprenderá por qué un simple servicio de Java necesita Spring en absoluto. Acelerará y verá cómo la introducción de Spring en una aplicación java puede proporcionarle algunos poderes que de otro modo no habría tenido.

¡Espero que esto ayude!

-Amitir

http://springtutorials.com

Spring es el marco más popular cuando se compilan aplicaciones Java Enterprise Edition (EE). Su característica principal es la inyección de dependencia que da como resultado la inversión del control.

Lo mejor de Spring es que puede tener numerosas herramientas y API en su proyecto Java y habría una cosa que los mantenga unidos, Spring.

Inyección de dependencia / Inversión de control

Suponga que crea una interfaz de vehículo y hay clases de automóviles, autobuses y bicicletas que la implementan.

Para usar las funcionalidades de un auto de clase en su clase de implementación, lo declararía como:

Vehículo vehículo = auto nuevo ();

El problema aquí es que el vehículo está codificado como un automóvil y si alguien dice que quiere la implementación como una bicicleta, tendrá que cambiar su código.

Pero con Spring, simplemente declararías un objeto de vehículo como …

Vehículo vehículo;

En este caso, Spring proporcionaría la flexibilidad de crear instancias del vehículo como un automóvil, autobús o bicicleta con un cambio en algún archivo de configuración, sin tocar el código en el archivo de implementación.

Esta es la característica principal de Spring, pero es solo una de las innumerables características que ofrece.

  • ¿Necesita acceder a la base de datos desde la aplicación Java? Utilice los módulos JDBC u ORM de Spring.
  • ¿Necesita insertar la función de registro en su aplicación Java? Utilice el módulo AOP de Spring.
  • ¿Necesita crear una aplicación Java basada en web? Use el módulo web de Spring.
  • ¿Necesita realizar pruebas de unidad e integración? Utilice el módulo de prueba de Spring.
  • ¿Necesita crear una aplicación basada en mensajería? Utilice el módulo de mensajería de Spring.
  • ¿Necesita implementar funciones de seguridad en su aplicación Java? Utilice el módulo de seguridad de Spring.

Spring es el marco más completo que podría utilizar para crear su aplicación Java de nivel empresarial.

¿Comenzó a tener antojos de aprender la primavera? Use los siguientes recursos:

Primavera en acción, cuarta edición – por Craig Walls

http://www.journaldev.com/2888/s

Tutoriales en video: https://javabrains.io/courses?to

Hola,

Spring Framework es un potente y ligero marco de desarrollo de aplicaciones utilizado para Enterprise Java (JEE).

Las características principales de Spring Framework se pueden usar para desarrollar cualquier aplicación Java. Se puede describir como marco completo y modular. Spring Framework se puede utilizar para todas las implementaciones de capa de una aplicación en tiempo real. También se puede utilizar para el desarrollo de una capa particular de una aplicación en tiempo real a diferencia de Struts e Hibernate, pero con Spring podemos desarrollar todas las capas.

Echemos un vistazo a la historia y el origen de Spring Framework.

En octubre de 2002, Rod Johnson , un especialista en informática australiano, escribió un libro titulado Expert One-on-One J2EE Design and Development. En este libro, propuso una solución más simple basada en clases Java comunes (POJO) e inyección de dependencia. Escribió más de 30,000 líneas de código de infraestructura que incluyeron una serie de interfaces y clases de Java reutilizables para desarrollar la aplicación. Alrededor de febrero de 2003, Rod, Juergen y Yann comenzaron a colaborar en el proyecto Spring. Se le dio el nombre de “Primavera”, ya que significaba un nuevo comienzo después de “Invierno” de J2EE tradicional. La siguiente imagen muestra los principales lanzamientos de versiones en la historia de Spring.

Como puede ver en el diagrama anterior, la arquitectura Spring Framework es una arquitectura organizada en capas que consta de diferentes módulos. Todos los módulos tienen sus propias funcionalidades que se utilizan para construir una aplicación. Hay alrededor de 20 módulos que se generalizan en Core Container , Acceso / integración de datos , Web , AOP (Programación orientada a aspectos), Instrumentación y Prueba . Aquí, el desarrollador es libre de elegir el módulo requerido. Su arquitectura modular permite la integración con otros marcos sin mucha molestia.

Espero que esto responda a su pregunta. En caso de que quiera saber más al respecto, puede ver este video:

Spring es un marco de trabajo para el desarrollo de múltiples aplicaciones, proporciona clases grupales que se utilizan internamente en las clases proporcionadas por J2EE, por lo que podemos decir que spring es alternativo a struts pero complementa a j2ee

Las características son:

Spring no es invasivo : eso significa que no necesita implementar ninguna interfaz o heredar ninguna clase de spring a sus clases, por lo que cuando quiera cambiar de spring a cualquier otra tecnología, no necesita cambiar las lógicas de su clase.

El resorte es liviano: el resorte es un marco amplio, por lo que las personas del resorte dividen todo el resorte en diferentes módulos, están diseñados de tal manera que ningún módulo depende de otro módulo, excepto el módulo de núcleo del resorte, por lo que de acuerdo con sus requisitos, puede aprender un módulo en particular, no necesita aprender todo el marco total.

Desarrollo de extremo a extremo: Spring admite todos los aspectos del desarrollo de aplicaciones, aspectos comerciales, aspectos de persistencia, etc., por lo que podemos desarrollar una aplicación completa utilizando Spring.

Spring admite todo tipo de desarrollo de aplicaciones: podemos desarrollar cualquier tipo de aplicaciones utilizando Spring, por ejemplo: Core java, aplicación web, aplicación distribuida, aplicación empresarial.

Spring es versátil: podemos integrar cualquier tecnología con spring, por lo que podemos decir que spring es versátil,

Spring admite la inyección de dependencia: Spring gestiona la dependencia entre clases.

Inyección de dependencia:

Spring core es un módulo que se ocupa de la gestión de dependencias:

Spring Core

Spring Core habla sobre la gestión de dependencias. Esto significa que si se proporcionan clases arbitrarias a Spring, Spring puede gestionar la dependencia.

Qué es la dependencia: – Desde el punto de vista del proyecto, en un proyecto o aplicación hay varias clases con diferentes funcionalidades. y cada clase requería alguna funcionalidad de otras clases, Ejemplo:

motor de clase
{
inicio público vacío ()
{
System.out.println (“Motor iniciado”);
}

}

coche de clase
{
movimiento vacío público ()
{
// Para mover start () se requiere el método de clase de motor
}
}

Aquí class Engine es requerido por class car, por lo que podemos decir que class engine depende de class Car, por lo tanto, en lugar de administrar esa dependencia por herencia o crear objetos como barbechos.

Por herencia:

motor de clase
{
inicio público vacío ()
{
System.out.println (“Motor iniciado”);
}

}
Clase coche extiende motor
{
movimiento vacío público ()
{
comienzo(); // Llamando al método de inicio de superclase,
}
}

Al crear un objeto de clase dependiente:

motor de clase
{
inicio público vacío ()
{
System.out.println (“Motor iniciado”);
}

}
coche de clase
{
Engine eng = motor nuevo ();
movimiento vacío público ()
{
eng.start ();
}
}

Entonces, en lugar de administrar la dependencia entre clases, spring core toma la responsabilidad de la administración de la dependencia. Pero hay alguna regla, las clases deben diseñarse con alguna técnica de diseño que sea el patrón de diseño de la estrategia.

Alrededor de 1998, los ‘expertos’ de la industria crearon el marco EJB para escribir aplicaciones de clase empresarial. Se veía genial en papel para informático. Con un amplio soporte de la industria, el estándar EJB se adoptó rápidamente. En realidad, era un marco pesado e inflado, que era difícil de implementar y administrar. Lo único que creció más rápido que la adaptación del marco EJB fue la crítica al marco EJB.

En 2002, Rod Johnson lanzó el primer lanzamiento de Spring Framework y publicó un libro icónico de la industria titulado “Desarrollo J2ee experto uno a uno sin EJB”. Spring se posicionó como una alternativa ligera y fácil de usar. Spring rápidamente ganó popularidad debido a su enfoque pragmático ligero. Desde 2002, Spring ha seguido evolucionando y creciendo con los cambios en la tecnología y la comunidad Java. Hoy es el estándar de facto para construir aplicaciones Java de clase empresarial.

El corazón de Spring es la inyección de dependencia, la inversión de control y la programación orientada a aspectos. El atractivo de Spring es el conjunto de proyectos Spring que se pueden utilizar para crear aplicaciones empresariales. Spring MVC para sitios web, Spring Security para asegurar el acceso, Spring Data para operaciones de persistencia, Spring Integration para EIP, Spring Batch para procesamiento por lotes, etc.

En resumen …… .. Desacopla el código de su aplicación. (Se recomienda acoplamiento flojo)

Este es un patrón de diseño arquitectónico para utilizar el enfoque de diseño mientras codifica cualquier aplicación Enterprise y para escribir diferentes clases para diferentes responsabilidades.

Por lo general, organizamos nuestras capas de esta manera {Dao> Servicio> Modelo> Controlador}.

Después de organizar nuestro código en capa … cada clase tiene asociación con otra clase, por ejemplo …
Necesitamos el objeto de clase DataSource para iniciar nuestro objeto de clase Dao …
Necesitamos el objeto de clase DaoImpl para iniciar nuestro Objeto de clase de servicio.
Necesitamos un objeto de clase de Servicio para iniciar nuestro objeto Modelo …

Entonces, ¿cómo proporcionamos tales dependencias a nuestras clases ………?

Codificamos la lógica de iniciación del origen de datos en el constructor de Dao.
Codificamos la lógica de iniciación de Dao en el constructor de la clase de servicio …
y así…….

De esta manera, estamos uniendo estrechamente nuestro proyecto … por lo tanto, es difícil mantener nuestro proyecto … y muy difícil escribir código extenso …

Llega una filosofía tecnológica que dice en lugar de codificar la lógica de iniciación de clase dependiente en contructor ……. Démosle esta responsabilidad a la herramienta / framework / clase / api de terceros.

Después de dar tal responsabilidad a la herramienta de terceros
Solo necesitamos escribir métodos de constructor / setter parametrizados en nuestra clase
y la herramienta de terceros proporcionará todos los datos necesarios para iniciar mi objeto de clase.

Así que esta es la primera y más importante característica de Spring Framework … (Spring Core> IoC, DI) ……

Hay muchos otros grandes fetures de Spring Framework
1. AOP -> métodos interceptores
2. Clases de plantilla -> para eliminar el código repetitivo
3. Clases de soporte -> Spring proporciona sus propias clases de soporte para conectar otro marco y usarlas en estilo spring (ORM / Struts / Crone / Lucent /)
4. La primavera tiene su propia jerarquía de excepciones
5. Soporte de transacciones

nota: el inglés es mi segundo idioma, por favor perdone el error gramatical.

Respuesta simple de mi experiencia …
Spring Framework también es una aplicación j2ee normal, proporciona una capa de abstracción en aplicaciones j2ee normales …

“La primavera nunca reemplaza a J2EE, más bien la primavera complementa a J2EE”

su código habla con las clases de primavera internamente las clases de primavera habla con las clases j2ee ..

Nota: Sin j2EE no Spring Framework

Spring es el marco de aplicación Java de código abierto más popular. La mayoría de los marcos existentes como Struts o Hibernate se encargan de una capa o una parte del desarrollo de la aplicación.
Como Struts se encarga del modelo MVC, Hibernate proporciona facilidad para trabajar con bases de datos. Sin embargo, Spring Framework combina todos los enfoques de marco estándar de la industria (por ejemplo, Struts e Hibernate) en un solo paquete.
Spring proporciona inyección de dependencia, programación orientada a aspectos y soporte para pruebas unitarias. Esto le da al desarrollador tiempo para trabajar en la lógica comercial principal en lugar de preocuparse por el código que no es de aplicación. Spring agiliza el desarrollo de aplicaciones y aumenta la productividad de los desarrolladores.

El siguiente enlace tiene un tutorial sobre Spring Framework y le dirá qué es exactamente Spring Framework y cómo hacerlo. ¡Saludos!

Curso de capacitación en línea Spring MVC Framework | Certificación Edureka Spring

Spring es el marco de Java más popular, es decir, el 40% de uso en 2014. Fue concebido por primera vez en respuesta a las quejas de la industria de que faltaba la especificación Java EE y era difícil de usar.

  • Spring 1.0 se lanzó en marzo de 2004 y 4.X desde diciembre de 2013.
  • La versión 4.3.0 se lanzó en junio de 2016.
  • Versión 5.0 prevista.

Spring es visto como una alternativa o reemplazo para EJB, una parte de la API JEE para encapsular la lógica de negocios. También hay muchos proyectos Spring disponibles que permiten centrarse en la plomería de las aplicaciones, dejando la lógica empresarial a los desarrolladores en aplicaciones que no sean web o web, por ejemplo, los conceptos de solicitud y respuesta HTTP se abstraen.

Spring funciona con JavaBeans, JEE, JDBC y ORM, por ejemplo, Hibernate, y puede usarse para crear aplicaciones independientes o aplicaciones compuestas de componentes o microservicios.

Se puede encontrar más información en spring.io, pero algunos de los conceptos principales de Spring son:

  • Inversión de control (IoC): un patrón de diseño que une el acoplamiento de objetos en tiempo de ejecución, no en tiempo de compilación, es decir, si el servicio A en una aplicación depende del servicio B, esta dependencia se satisface cuando la aplicación se ejecuta, en lugar del servicio A instanciando servicio B en tiempo de compilación.
  • Inyección de dependencias (DI): DI implementa frecuentemente IoC donde las dependencias se inyectan en el objeto del cliente dependiendo de ellas, y que forman parte de su estado. Spring usa DI para eliminar dependencias entre objetos para lograr un acoplamiento flojo.
  • Programación orientada a aspectos (AOP): Esto tiene que ver con las preocupaciones transversales de una aplicación que son distintas de la lógica empresarial, por ejemplo, el registro o la seguridad.
  • Acceso a datos y gestión de transacciones: las herramientas de acceso a datos simplifican la extracción de datos y la persistencia a bases de datos relacionales a través de marcos JDBC u ORM.
  • Mensajería: se utiliza un patrón de publicación-suscripción para mensajes intercambiados entre componentes de software.
  • Modelo-Vista-Controlador (MVC): simplifica el uso de solicitudes y respuestas HTML.

Spring es un gran marco para el desarrollo de aplicaciones de grado empresarial. Spring es un marco ligero para el desarrollo de aplicaciones listas para la empresa. Proporciona instalaciones muy simples y ricas para integrar diversos marcos, tecnologías y servicios en las aplicaciones. Una de las razones principales para usar Spring Framework es mantener el código lo más simple posible. Impulsa el camino para desarrollar aplicaciones empresariales con Java Beans simples y poco acoplados. Por esta razón, el marco de primavera también se puede llamar un marco de Objeto Java antiguo simple (POJO).

Tutorial de primavera: un pequeño paso para aprender

Spring Framework, como dijo Abdul Mateen, es un contenedor de IoC pero, a lo largo de los años, se convirtió en una pila completa para desarrollar servicios y aplicaciones web.
El IoC es el núcleo de cada módulo de Spring, que ahora cubre muchas áreas, vea Spring Projects

No es realmente un marco de quejas JEE, pero EJB 3 tiene fuertes raíces ( tos … copiado … tos ) en el enfoque Spring, por lo que son muy similares.

Básicamente, Spring es un marco para la inyección de dependencias, que es un patrón que permite construir sistemas muy desacoplados. Trataré de explicarte lo más simple que pueda (esta no es una respuesta corta).

El problema

Por ejemplo, suponga que necesita enumerar los usuarios del sistema y declarar así una interfaz llamada UserLister :

interfaz pública UserLister {
Lista getUsers ();
}

Y tal vez una implementación que acceda a una base de datos para obtener todos los usuarios:

La clase pública UserListerDB implementa UserLister {
public List getUsers () {
// Código de acceso DB aquí
}
}

En su opinión, necesitará acceder a una instancia (solo un ejemplo, recuerde):

clase pública SomeView {
userLister privado userLister;

public void render () {
Lista usuarios = userLister.getUsers ();
view.render (usuarios);
}
}

Tenga en cuenta que el código anterior no ha inicializado la variable userLister . ¿Qué debemos hacer? Si ejemplifico explícitamente el objeto de esta manera:

UserLister userLister = new UserListerDB ();

… Acoplaría la vista con mi implementación de la clase que accede a la base de datos. ¿Qué sucede si quiero cambiar de la implementación de DB a otra que obtenga la lista de usuarios de un archivo separado por comas (recuerde, es un ejemplo)? En ese caso, volvería a mi código y cambiaría la última línea por:

UserLister userLister = new UserListerCommaSeparatedFile ();

Esto no tiene ningún problema con un programa pequeño como este, pero … Lo que sucede en un programa que tiene cientos de visitas y un número similar de clases de negocios. ¡El mantenimiento se convierte en una pesadilla!

Spring es el marco de desarrollo de aplicaciones más popular para Java empresarial. Millones de desarrolladores en todo el mundo usan Spring Framework para crear código de alto rendimiento, fácilmente comprobable y reutilizable.
Spring Framework es una plataforma Java de código abierto e inicialmente fue escrita por Rod Johnson y se lanzó por primera vez bajo la licencia Apache 2.0 en junio de 2003.
Spring es liviano en cuanto a tamaño y transparencia. La versión básica de Spring Framework es de alrededor de 2 MB.
Las características principales de Spring Framework se pueden usar para desarrollar cualquier aplicación Java, pero existen extensiones para crear aplicaciones web sobre la plataforma Java EE. Spring Framework tiene como objetivo hacer que el desarrollo de J2EE sea más fácil de usar y promover buenas prácticas de programación al habilitar un modelo de programación basado en POJO.
Descripción general del marco de primavera

Spring framework es un contenedor de IoC, IoC (Inversion of Control) como otros marcos, la belleza de Spring es la inyección de dependencia, la inyección de dependencia hace que la lógica de negocios sea independiente de los marcos subyacentes y resuelve o inyecta dependencias en tiempo de ejecución, lo que hace que el negocio sea menos complejo y menos dependiente del marco subyacente.

Spring se describe generalmente como “Un marco ligero para construir aplicaciones Java”. Esto significa cualquier tipo de aplicación Java: java independiente, aplicaciones JEE, aplicaciones web, etc. El peso ligero significa que solo tiene que hacer algunos cambios o ninguno en el código de su aplicación para obtener los beneficios de Spring. Esto es muy importante. No necesita extender sus clases desde ningún componente de Spring Framework en particular para obtener las características del framework. Esta declaración es aplicable a Spring core. Spring proporciona capacidades de IOC (Inversión de control) y DI (Inyección de dependencia). Minimizar las dependencias es uno de los factores más importantes en la creación de software extensible y mantenible, y Spring lo resuelve maravillosamente.

Spring framework es un marco completo de aplicaciones java / j2ee con el que un desarrollador puede desarrollar aplicaciones java que van desde una simple aplicación hello world (donde usar spring es una exageración) hasta cualquier nivel de aplicación j2ee compleja.

Spring es un marco de código abierto. Apache lo proporciona para procesar e invertir el contenedor de control para la plataforma Java. Está escrito en Java y actualmente lo usan Google, Facebook, LinkedIn, Yahoo, Twitter, JavaTportal, etc.

consulte aquí
Soy nuevo en Java Spring Framework y quiero obtener una imagen general de él primero. Planeo usarlo para mis proyectos favoritos en la oficina. Me aconsejaron aprenderlo usando las guías de primavera (Spring Guides). Pero, hay demasiadas guías allí. ¿Hay algún orden sugerido?