Heim  >  Artikel  >  Java  >  Was ist das Spring-Framework? Einführung in den Spring Framework IOC-Container

Was ist das Spring-Framework? Einführung in den Spring Framework IOC-Container

不言
不言nach vorne
2018-10-19 16:08:344275Durchsuche

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.

 Was ist das Spring-Framework? Einführung in den Spring Framework IOC-Container

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 XMLDatei:

<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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen