Heim  >  Artikel  >  Java  >  Verstehen Sie die fünf Möglichkeiten, im Frühling an Bohnen zu kommen

Verstehen Sie die fünf Möglichkeiten, im Frühling an Bohnen zu kommen

王林
王林Original
2023-12-30 08:40:051354Durchsuche

Verstehen Sie die fünf Möglichkeiten, im Frühling an Bohnen zu kommen

Um die fünf Möglichkeiten zu verstehen, Beans in Spring zu erhalten, benötigen Sie spezifische Codebeispiele.

Spring ist ein Open-Source-Framework für die leichte Java-Entwicklung. Eine seiner Kernfunktionen ist IoC (Inversion of Control, Inversion of Control). In Spring ist Bean die Grundeinheit einer Anwendung, und es gibt viele Möglichkeiten, Beans zu erhalten. In diesem Artikel werden die fünf Möglichkeiten vorgestellt, Beans in Spring zu erhalten, und es werden spezifische Codebeispiele bereitgestellt.

1. Über die Konfigurationsdatei abrufen

In Spring können wir Bean über die Konfigurationsdatei definieren und es dann über BeanFactory oder ApplicationContext abrufen. Hier ist ein Beispiel:

<!-- 定义一个Bean -->
<bean id="myBean" class="com.example.MyBean">
    <!-- 设置属性值 -->
    <property name="name" value="Alice" />
</bean>
// 获取BeanFactory
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));

// 获取Bean
MyBean myBean = (MyBean) beanFactory.getBean("myBean");

// 使用Bean
myBean.sayHello();

2. Durch Annotationen gelangen

Neben der Verwendung von Konfigurationsdateien zum Definieren von Beans unterstützt Spring auch die Verwendung von Annotationen zum Definieren von Beans. Sie können @Component oder benutzerdefinierte Annotationen verwenden, um Beans zu definieren und dann abhängige Beans über @Autowired- oder @Resource-Annotationen abzurufen. Hier ist ein Beispiel:

@Component
public class MyBean {

    @Value("Alice")
    private String name;

    public void sayHello() {
        System.out.println("Hello, " + name + "!");
    }
}

@Service
public class MyService {

    @Autowired
    private MyBean myBean;

    public void doSomething() {
        myBean.sayHello();
    }
}
rreee

3. Get through FactoryBean

FactoryBean in Spring ist ein spezielles Bean. Es gibt nicht sich selbst direkt zurück, sondern ein tatsächliches Bean über die Methode getObject(). Hier ist ein Beispiel:

// 获取ApplicationContext
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

// 获取Bean
MyService myService = applicationContext.getBean(MyService.class);

// 使用Bean
myService.doSomething();

4. Erhalten Sie über AOP

In Spring können Sie AOP verwenden, um Beans zu verbessern, z. B. durch Hinzufügen von Protokollierung, Berechtigungskontrolle usw. vor und nach der Methodenausführung. Wenn eine Bean über AOP abgerufen wird, gibt Spring ein Proxy-Objekt anstelle des echten Bean-Objekts zurück. Hier ist ein Beispiel:

public class MyFactoryBean implements FactoryBean<MyBean> {

    @Override
    public MyBean getObject() throws Exception {
        MyBean myBean = new MyBean();
        myBean.setName("Alice");
        return myBean;
    }

    @Override
    public Class<?> getObjectType() {
        return MyBean.class;
    }

    @Override
    public boolean isSingleton() {
        return false;
    }
}

// 获取BeanFactory
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));

// 获取FactoryBean
MyBean myBean = (MyBean) beanFactory.getBean("myFactoryBean");

// 使用Bean
myBean.sayHello();

5. Bezug über JNDI

Zusätzlich zur Verwendung des integrierten Containers von Spring können Sie Bohnen auch über JNDI beziehen. Diese Methode eignet sich für die Verwendung von Spring in einer Java EE-Umgebung. Hier ist ein Beispiel:

@Component
public class MyBean {

    public void sayHello() {
        System.out.println("Hello!");
    }
}

@Aspect
@Component
public class MyAspect {

    @Before("execution(* com.example.MyBean.sayHello())")
    public void beforeSayHello() {
        System.out.println("Before sayHello");
    }
}

// 获取ApplicationContext
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

// 获取Bean
MyBean myBean = applicationContext.getBean(MyBean.class);

// 使用Bean
myBean.sayHello();

Durch die oben genannten fünf Methoden können wir Bean-Objekte im Frühling flexibel abrufen. Unabhängig davon, ob Konfigurationsdateien, Anmerkungen, FactoryBean, AOP oder JNDI verwendet werden, kann Spring uns bei der Implementierung der Abhängigkeitsinjektion und der Steuerungsinversion unterstützen und so die Lesbarkeit und Wartbarkeit des Codes verbessern. Ich hoffe, dass die Codebeispiele in diesem Artikel den Lesern helfen können, besser zu verstehen, wie man Beans in Spring erhält.

Das obige ist der detaillierte Inhalt vonVerstehen Sie die fünf Möglichkeiten, im Frühling an Bohnen zu kommen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn