Heim >Java >javaLernprogramm >Was ist das Spring-Framework? Einführung in den Spring Framework IOC-Container
Der Inhalt dieses Artikels befasst sich mit der Frage, was das Spring-Framework ist. Die Einführung des Spring-Framework-IOC-Containers hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen.
1. Einführung in das Spring Open Source Framework
Spring ist ein Open Source Framework und ein leichtes Java-Entwicklungsframework, das 2003 entstand. Von einigen abgeleitet der Ideen und Prototypen, die Rod Johnson in seinem Buch Expert One-On-One J2EE Development and Design beschreibt. Es wurde entwickelt, um die Komplexität der Entwicklung von Unternehmensanwendungen zu lösen.
Spring verwendet grundlegende JavaBeans, um Dinge zu erreichen, die bisher nur mit EJBs möglich waren. Allerdings sind die Einsatzmöglichkeiten von Spring nicht auf die serverseitige Entwicklung beschränkt. Jede Java-Anwendung kann von Spring hinsichtlich Einfachheit, Testbarkeit und loser Kopplung profitieren. Einfach ausgedrückt ist Spring ein leichtes Inversion of Control (IoC) und Aspect-Oriented (AOP) Container-Framework.
Das Grundgerüst von Spring umfasst hauptsächlich sechs Module: DAO, ORM, AOP, JEE, WEB und CORE.
Spring DAO: Spring bietet Betriebsunterstützung für JDBC: JdbcTemplate-Vorlagen-Toolklasse.
Spring ORM: Spring kann in das ORM-Framework integriert werden. Beispielsweise integriert Spring das Hibernate-Framework und Spring stellt auch die Toolklasse HibernateDaoSupport bereit, die den Betrieb von Hibernate vereinfacht.
Spring WEB: Spring bietet Unterstützung für Struts, Springmvc und unterstützt die WEB-Entwicklung. Gleichzeitig bietet Spring selbst auch Lösungen auf Basis von MVC an.
Spring AOP: Spring bietet aspektorientierte Programmierung und kann die Transaktionsverwaltung für eine bestimmte Schicht bereitstellen, z. B. das Hinzufügen einer Transaktionssteuerung zur Serviceschicht.
Spring JEE: Unterstützung für J2EE-Entwicklungsspezifikationen wie EJB.
Spring Core: Bietet die Erstellung von IOC-Containerobjekten und die Verarbeitung abhängiger Objektbeziehungen.
2. IOC-Container und DI (Abhängigkeitsinjektion) unter Feder
IOC-Container: Es handelt sich um einen Container mit Abhängigkeitsinjektionsfunktion Der IOC-Container ist für die Instanziierung, Lokalisierung, Konfiguration von Objekten in der Anwendung und die Herstellung von Abhängigkeiten zwischen diesen Objekten verantwortlich. Normalerweise wird eine neue Instanz vom Programmierer gesteuert, und „Kontrollumkehr“ bedeutet, dass die Arbeit der neuen Instanz nicht vom Programmierer erledigt, sondern an den Spring-Container übergeben wird. . Im Frühjahr ist BeanFactory der eigentliche Vertreter des IOC-Containers.
DI (Abhängigkeitsinjektion): Nachdem der Container das Objekt erstellt hat, verarbeitet er die Abhängigkeiten des Objekts.
Abhängigkeitsinjektionsfeder-Injektionsmethode:
Set-Injektionsmethode
Statische Factory-Injektionsmethode
Konstruktormethode-Injektionsmethode
basierend auf Anmerkungen Methode
1. Injektionsmethode festlegen:
Code der Kontrollschicht:
private OrderServiceImp orderService; public void setOrderService(OrderServiceImp orderService) { this.orderService = orderService; }
Spring-Konfigurations-XML-Datei: Die Konfiguration deklariert, dass die OrderAction-Klasse das Attribut orderService hat. Wenn das Programm ausgeführt wird, wird das instanziierte orderService-Objekt mithilfe der setOrderService-Methode eingefügt.
<bean> <property></property> </bean> <bean></bean>
2. Konstruktor-Injektionsmethode:
Steuerebenencode:
private OrderServiceImp orderService; public OrderAction(OrderServiceImp orderService) { this.orderService = orderService; }
Feder-Konfiguration XML
Datei:
<bean> <constructor-arg></constructor-arg> </bean> <bean></bean>
3. Annotationsbasierte Methode (empfohlen, bequemer und weniger Konfiguration)
Steuerschichtcode:
@Autowired //@Resource private OrderServiceImp orderService;
Serviceschichtcode:
@Service("orderService") public class OrderServiceImp implements IOrderService { @Autowired private JavaOrderMDaoImp javaOrderMDao; @Autowired private JavaOrderDDaoImp javaOrderDDao; @Override public List<javaordermlist> findOrderM(OrderSearch search) { return javaOrderMDao.findJavaOrderM(search); } @Override public List<javaorderdlist> findOrderD(OrderSearch search) { return javaOrderDDao.findJavaOrderD(search); } }</javaorderdlist></javaordermlist>
DAO-Schichtcode:
@Repository("javaOrderMDao") public class JavaOrderMDaoImp extends BaseHibernateDAO<javaorderm> implements IJavaOrderMDao {...}</javaorderm>
@Repository("javaOrderDDao") public class JavaOrderDDaoImp extendsBaseHibernateDAO<javaorderd> implements IJavaOrderDDao {...}</javaorderd>
注意点:
⑴ Der Name wird im DAO-Layer-Annotations-Repository der Persistenzschicht angegeben und der Name muss konsistent sein, wenn er in der Serviceschicht deklariert wird.
⑵ Service-Layer-Service-Layer-Annotation Der Name wird im Service angegeben und der in der Kontrollschicht deklarierte Name muss konsistent sein.
⑶ Annotationsmethode zum Einfügen von Abhängigkeitsanmerkungen:
@Component 把对象加入ioc容器,对象引用名称是类名,第一个字母小写 @Component(“name”) 把指定名称的对象,加入ioc容器 @Repository 主要用于标识加入容器的对象是一个持久层的组件(类) @Service 主要用于标识加入容器的对象是一个业务逻辑层的组件 @Controller 主要用于标识加入容器的对象是一个控制层的组件 @Resource 注入属性(DI), 会从容器中找对象注入到@Resource修饰的对象上 @Autowired 注入属性(DI), 会从容器中找对象注入到@Autowired修饰的对象上
⑷ Annotationen können die Konfiguration vereinfachen und die Entwicklungseffizienz verbessern, sind aber auch nicht förderlich für die spätere Wartung.
Hinweis: Der Unterschied zwischen @Autowired und @Resource
Das obige ist der detaillierte Inhalt vonWas ist das Spring-Framework? Einführung in den Spring Framework IOC-Container. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!