Согласно Apple-doc
blockquote>
- Слабые ссылки всегда имеют необязательный тип и автоматически становятся нулями, когда экземпляр, который они ссылаются, освобождается.
- Если захваченное задание никогда не станет нулевым, оно всегда должно быть записано как неосновная ссылка, а не слабая ссылка
Пример -
// if my response can nil use [weak self] resource.request().onComplete { [weak self] response in guard let strongSelf = self else { return } let model = strongSelf.updateModel(response) strongSelf.updateUI(model) } // Only use [unowned self] unowned if guarantees that response never nil resource.request().onComplete { [unowned self] response in let model = self.updateModel(response) self.updateUI(model) }
Когда вы делаете что-то подобное в своей конфигурации Spring XML
<bean id="fooClassInstance" class="my.package.FooClass">
<property name="myproperty" value="${variable}" />
</bean>
Spring использует PropertyPlaceholderConfigurer
для поиска этих переменных в переменных System / enviroment и / или в списке предопределенных файлов свойств.
Таким образом, самый простой способ - передать это значение как переменную системы или среды с помощью -Dvariable=value
.
Если вы хотите передать эти значения в качестве аргументов в min
, вы все равно можете делать такие хаки, как
public static void main(String[] args) {
// parse arguments into key, value pairs
System.setProperty(<key>, <value>);
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(<your XML config file>);
// use Spring context to get beans
}
Попробуйте использовать Системные свойства:
java -Dvariable=value -jar my.jar
Это либо работает из коробки, либо вам нужно указать контексту приложения, чтобы он смотрел на свойства системы, когда она расширяет переменные. Прошло много времени с тех пор, как я это попробовал.
Хорошей отправной точкой является PropertySourcesPlaceholderConfigurer
.