вы можете использовать
$('.buttons').on('click', 'button', function(){
// your magic goes here
});
или
$('.buttons').delegate('button', 'click', function() {
// your magic goes here
});
, эти два метода эквивалентны, но имеют другой порядок параметров.
см .: Событие делегата jQuery
Использование внешних файлов свойств
Ответ лежит на весенних загрузочных документах, я попытаюсь сломать их для вас.
Прежде всего, нет, вы не должны использовать @PropertySource
при работе с конфигурацией Ямля, как упоминается здесь в недостатках Ямла :
Файлы YAML не могут быть загружены через аннотацию @PropertySource. Таким образом, в случае, когда вам нужно загрузить значения таким образом, вам нужно использовать файл свойств.
blockquote>Итак, как загружать нужные файлы? Это объясняется здесь Файлы свойств приложения
Один загружен для вас:
application.yml
, поместите его в одну из каталогов, как указано в ссылке выше. Это отлично подходит для вашей общей конфигурации.Теперь для вашей конкретной конфигурации (и таких как пароли) вы хотите использовать внешние файлы свойств, как это сделать, также объясняется в этом разделе:
Если вам не нравится application.properties в качестве имени файла конфигурации, вы можете переключиться на другой, указав свойство среды spring.config.name. Вы также можете обратиться к явному местоположению, используя свойство среды spring.config.location (список разделов, разделенных запятыми, или пути к файлам).
blockquote>Таким образом, вы используете среду
spring.config.location
имущество. Представьте, что у вас есть внешний файл конфигурации:application-external.yml
в conf / dir в вашем домашнем каталоге, просто добавьте его следующим образом:-Dspring.config.location=file:${home}/conf/application-external.yml
в качестве параметра запуска вашей JVM. Если у вас несколько файлов, просто разделите их запятой. Обратите внимание, что вы можете легко использовать внешние свойства, подобные этому, чтобы перезаписать свойства, а не просто добавлять их.Я бы посоветовал проверить это, заставив ваше приложение работать только с вашим внутренним файлом application.yml, а затем перезаписать свойство (test) в вашем файле внешних свойств и зарегистрировать его значение где-нибудь.
Привязать свойства Ямля к объектам
При работе с свойствами Ямла я обычно загружаю их с помощью
@ConfigurationProperties
, что отлично подходит для работы с примерами списков или более сложной структурой свойств. (Вот почему вы должны использовать свойства Yaml, для простых свойств вы, возможно, лучше используете обычные файлы свойств). Прочтите это для получения дополнительной информации: Свойства конфигурации типа SafeДополнительно: загрузка этих свойств в тесте IntelliJ, Maven и JUnit
Иногда вы хотите загрузить эти свойства в ваших сборках maven или при выполнении тестов. Или просто для локального развития с вашей IDE
Если вы используете IntelliJ для разработки, вы можете легко добавить это, добавив его в свою конфигурацию Run Tomcat: «Запустить» -> «Изменить конфигурации», выберите конфигурацию запуска в «Сервер Tomcat», проверьте вкладку «Сервер» и добавьте ее в «Параметры VM».
Чтобы использовать внешние файлы конфигурации в своей сборке Maven: настройте плагин maven surefire, как это, в вашем pom.xml:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>-Dspring.config.location=file:${home}/conf/application-external.yml </configuration> </plugin>
При запуске тестов JUnit в IntelliJ:
- Run → Edit Configurations
- По умолчанию → JUnit
- добавить параметры VM ->
-ea -Dspring.config.location=file:${home}/conf/application-external.yml
Да, вам нужно использовать @PropertySource
, как показано ниже.
Важным моментом здесь является то, что вам необходимо предоставить свойство application_home
(или выбрать любое другое имя) в качестве переменной окружения ОС или System или вы можете передать аргумент командной строки при запуске Spring boot. Это свойство указывает, где находится файл конфигурации (.properties
или .yaml
) (например: /usr/local/my_project/
и т. Д.)
@Configuration
@PropertySource("file:${application_home}config.properties")//or specify yaml file
@ComponentScan({"be.ugent.lca","be.ugent.sherpa.configuration"})
@EnableAutoConfiguration
@EnableSpringDataWebSupport
public class Application extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
application_home=C:\\myproject
(или любую другую переменную ОС)
– developer
25 March 2017 в 22:10
$application_home
, что неверно, не префикс $
в переменной ОС, он требуется только в классе java как часть языка Spring Expression
– developer
25 March 2017 в 22:22
Используйте код ниже в вашем классе загрузки:
@PropertySource({"classpath:omnicell-health.properties"})
используйте код ниже в вашем контроллере:
@Autowired
private Environment env;