java - creacion - No se puede crear bean mientras se carga la clase en tiempo de ejecución
java beans java (1)
Tengo dos proyectos que funcionan de manera diferente. El primero se usa para la carga de clases y el segundo tiene su clase, que se usa para hacer algún trabajo de procesamiento.
En el primer proyecto estoy cargando la clase y en lugar de crear una nueva instancia para invocar el método, solo estoy usando el contexto de la aplicación.
@Autowired
ApplicationContext context;
ClassLoader loader = null;
try {
loader = URLClassLoader.newInstance(new URL[]{new
File(plugins + "/" + pluginName + "/" + pluginName +
".jar").toURI().toURL()}, getClass().getClassLoader());
} catch (MalformedURLException e) {
e.printStackTrace();
}
Class<?> clazz = null;
try {
clazz = Class.forName("com.sample.Specific", true, loader);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Method method = null;
try {
method = clazz.getMethod("run",new Class[]{});
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
try {
method.invoke(context.getBean(clazz),new Object[]{});
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
En Second Project tengo este ejemplo:
package com.sample
@Service
public class Specific {
@Autowired
private FD fd;
public void run(){
fd.init();
}
}
Como he mencionado, estos son dos proyectos diferentes. Entonces, cuando ejecuto el primer proyecto con la clase principal, dice que ...
Considere la posibilidad de definir un bean de tipo ''com.sample.Specific'' en su configuración.
¿Cómo puedo crear el bean?
Esto se debe a que no puede encontrar esta clase, en la configuración de escaneo de componentes necesita declarar el paquete donde viven sus beans.