У меня есть этот код:нагрузки класса со всеми компонентами это от Outter баночки
// Getting the jar URL which contains target class
URL[] classLoaderUrls = new URL[]{new URL("LINKTOJAR")};
// Create a new URLClassLoader
URLClassLoader urlClassLoader = new URLClassLoader(classLoaderUrls);
// Load the target class
Class<?> beanClass = urlClassLoader.loadClass("com.my.class");
// Create a new instance from the loaded class
Constructor<?> constructor = beanClass.getConstructor();
Object beanObj = constructor.newInstance();
// Getting a method from the loaded class and invoke it
Method method = beanClass.getMethod("sayHello");
method.invoke(beanObj);
Это должно вызвать метод SayHello, который необходимо один компонент для работы.
Метод печатает «Hello% Name», где это имя @AutoWired String.
Вызов метода работает, но проблема в том, что он просто говорит «Привет», потому что String не автоподключен, и это «null».
Как я могу сделать это возможным для Autowired, если весь контекст находится в банке, которую я вызываю и, кажется, не загружается?
Спасибо.
EDIT ::
Идея заключается в том, чтобы иметь что-то вроде:
ApplicationContext context = new ClassPathXmlApplicationContext(
"classpath*:**/applicationContext*.xml");
MyAdder myAdder = (MyAdder) context.getBean("myAdder");
Для того, чтобы загрузить контекст, но я не знаю, как загрузить этот контекст из Outter баночке.
Да, это вопрос, как я могу загрузить контекст фонаря, чтобы сделать эту работу. Проблема в том, что не просто вставлять String, представьте, что строка исходит из базы данных, которая настроена с помощью MyBatis ... Мне нужна эта логика для загрузки, но я не вижу способа выполнить jar, чтобы иметь все working –
Вы можете попробовать autowire с существующим контекстом приложения. http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/AutowireCapableBeanFactory.html – Antoniossss