在java spring中,是否可以动态将一个新的class加载到beanFactory中?是否可以将class类以字节流的方式存到redis中,再由类加载器重新加载到java运行实例中?
目前项目中有一个需求,需要可以动态地加载类到spring的beanFactory中或者说applicationContext里面,这个类是可以由开发人员动态上传到生产环境中,而无需重新启动生产环境。请问是否可以做到呢?还有一个问题,是否可以将class文件以字节的方式暂存在redis中间件上,需要用这个class时,动态地加载它?
Selepas JDK1.5, terdapat API java.lang.instrument.Instrumentation siap sedia untuk melaksanakan fungsi ini.
Antara muka di atas boleh mentakrifkan semula
class
sedia ada.Gunakan seperti di bawah.
Kaedah untuk mendapatkan
Instrumentation
objek:agent.jar
Anda perlu menentukanAgent-Class
semasa pembungkusan danCan-Redefine-Classes
dayakan fungsi penulisan semula kelas.Agent.java
PelaksanaanDi sini saya menyuntik objek
JMX
melaluiInstrumentation
Mengapa saya melakukannya dengan cara ini? | .Kemudian saya cuba memanggilnya menggunakan .
vm.loadAgent();
ClassLoader
Baiklah, selagi anda mendapat objek , anda boleh melakukan apa sahaja yang anda tidak boleh lakukan sebelum ini.JMX
Cuba dapatkan AutowireCapableBeanFactory melalui ApplicationContext, dan kemudian panggil kaedah createBean() atau autowire() untuk menyuntik
Java mempunyai aliran input dan output objek, jadi anda pasti boleh menyimpan objek dalam bait
Semua yang dinyatakan di atas adalah salah. Saya boleh memberitahu anda dengan jelas bahawa segala-galanya mungkin.
tanda untuk belajar