Контакт с параметрами командной строки и Spring

Причина в том, что они разные, потому что они разные вещи. Первое изображение - это окно настроек исходных учетных записей GNOME, которое не позволяет приложениям или подключаемым модулям добавлять поддержку других служб. Второй - модифицированный в Ubuntu, который допускает такие возможности.

Однако, на самом деле, ни один из них не имеет ничего общего с поддержкой Webapps в Unity. Если вы хотите включить поддержку Unity Webapps для GMail, перейдите на https://gmail.com/ и выберите возможность интеграции в Ubuntu, когда появится всплывающее окно в браузере. вверх. Это добавит значок в панель запуска и должен показать количество сообщений в индикаторе сообщений и т. Д.

37
задан 25.09.2008, 11:59

3 ответа

Две возможности я могу думать.

1) Набор статическая ссылка. (Статическая переменная, хотя обычно осуждено, в порядке в этом случае, потому что может только быть 1 вызов командной строки).

public class MyApp {
  public static String[] ARGS; 
  public static void main(String[] args) {
    ARGS = args;
      // create context
  }
}

можно тогда сослаться на параметры командной строки в Spring через:

<util:constant static-field="MyApp.ARGS"/>

, Кроме того (если Вы абсолютно настроены против статических переменных), Вы можете:

2) Программно добавляют args к контексту приложения:

 public class MyApp2 {
   public static void main(String[] args) {
     DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();

        // Define a bean and register it
     BeanDefinition beanDefinition = BeanDefinitionBuilder.
       rootBeanDefinition(Arrays.class, "asList")
       .addConstructorArgValue(args).getBeanDefinition();
     beanFactory.registerBeanDefinition("args", beanDefinition);
     GenericApplicationContext cmdArgCxt = new GenericApplicationContext(beanFactory);
     // Must call refresh to initialize context 
     cmdArgCxt.refresh();

     // Create application context, passing command line context as parent
     ApplicationContext mainContext = new ClassPathXmlApplicationContext(CONFIG_LOCATIONS, cmdArgCxt);

     // See if it's in the context
     System.out.println("Args: " + mainContext.getBean("args"));
   }

   private static String[] CONFIG_LOCATIONS = new String[] {
     "applicationContext.xml"
   };

 }

Парсинг параметров командной строки оставляют как осуществление читателю.

39
ответ дан 10.10.2019, 12:13

Можно также передать Объектный массив как второй параметр к getBean, который будет использоваться в качестве аргументов конструктору или фабрике.

public static void main(String[] args) {
   Mybean m = (Mybean)context.getBean("mybean", new Object[] {args});
}
5
ответ дан 10.10.2019, 12:13

Вот пример для начальной загрузки, полоска кидаются за Основным методом, просто захватывают переданные параметрические усилители, поскольку нормальный тогда делают функцию, Вы обращаетесь к своему бобу (в случае deployer.execute ()), берут их в качестве Строк, или через любой формат Вы чувствуете себя подходящими.

public static void main(String[] args) throws IOException, ConfigurationException {
    Deployer deployer = bootstrapSpring();

    deployer.execute();
}

private static Deployer bootstrapSpring()
{
    FileSystemXmlApplicationContext appContext = new FileSystemXmlApplicationContext("spring/deployerContext.xml");

    Deployer deployer = (Deployer)appContext.getBean("deployer");
    return deployer;
}
1
ответ дан 10.10.2019, 12:13

Теги

Похожие вопросы