Rumah  >  Artikel  >  Java  >  Fahami lima cara untuk mendapatkan kacang dalam Spring

Fahami lima cara untuk mendapatkan kacang dalam Spring

王林
王林asal
2023-12-30 08:40:051399semak imbas

Fahami lima cara untuk mendapatkan kacang dalam Spring

Untuk memahami lima cara mendapatkan kacang dalam Spring, anda memerlukan contoh kod khusus

Spring ialah rangka kerja pembangunan Java ringan sumber terbuka Salah satu ciri terasnya ialah IoC (Penyongsangan Kawalan, Penyongsangan Kawalan). Dalam Spring, Bean ialah unit asas yang membentuk aplikasi, dan terdapat banyak cara untuk mendapatkan Beans Artikel ini akan memperkenalkan lima cara untuk mendapatkan Beans dalam Spring dan memberikan contoh kod khusus.

1. Dapatkan melalui fail konfigurasi

Pada Musim Bunga, kita boleh menentukan Bean melalui fail konfigurasi, dan kemudian mendapatkannya melalui BeanFactory atau ApplicationContext. Berikut ialah contoh:

<!-- 定义一个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 Dapatkan melalui anotasi

Selain menggunakan fail konfigurasi untuk mentakrifkan kacang, Spring juga menyokong penggunaan anotasi untuk mentakrifkan kacang. Anda boleh menggunakan @Component atau anotasi tersuai untuk mentakrifkan kacang, dan kemudian dapatkan kacang bergantung melalui anotasi @Autowired atau @Resource. Berikut ialah contoh:

@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();
    }
}
// 获取ApplicationContext
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

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

// 使用Bean
myService.doSomething();

3 Get through FactoryBean

FactoryBean in Spring ialah Bean istimewa Ia tidak mengembalikan sendiri secara langsung, tetapi mengembalikan Bean sebenar melalui kaedah getObject(). Berikut ialah contoh:

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();

4 Dapatkan melalui AOP

Pada Musim Bunga, anda boleh menggunakan AOP untuk meningkatkan Beans, seperti menambah pengelogan, kawalan kebenaran, dll. sebelum dan selepas pelaksanaan kaedah. Apabila mendapatkan Bean melalui AOP, Spring akan mengembalikan objek proksi dan bukannya objek Bean sebenar. Berikut adalah contoh:

@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();

5 Dapatkan melalui JNDI

Selain menggunakan bekas terbina dalam Spring untuk mendapatkan kacang, anda juga boleh mendapatkan kacang melalui JNDI. Kaedah ini sesuai untuk menggunakan Spring dalam persekitaran Java EE. Berikut ialah contoh:

// 获取InitialContext
Context context = new InitialContext();

// 查找Bean
MyBean myBean = (MyBean) context.lookup("java:comp/env/myBean");

// 使用Bean
myBean.sayHello();

Melalui lima kaedah di atas, kita boleh mendapatkan objek Bean secara fleksibel dalam Spring. Sama ada menggunakan fail konfigurasi, anotasi, FactoryBean, AOP atau JNDI, Spring boleh membantu kami melaksanakan suntikan pergantungan dan mengawal penyongsangan, meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Saya harap contoh kod dalam artikel ini dapat membantu pembaca lebih memahami cara mendapatkan kacang dalam Spring.

Atas ialah kandungan terperinci Fahami lima cara untuk mendapatkan kacang dalam Spring. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn