Разработчики, которые не понимают свойства весной, могут найти его немного запутанным, главным образом потому, что существует много методов конфигурации и много методов использования.
Эта статья не является основным анализом или статьей анализа исходного кода, но я надеюсь, что она может помочь читателям лучше понять и использовать весенние свойства.
Использование свойств
Все читатели этой статьи использовали весну. Давайте сначала посмотрим, как используются свойства. В пружине есть несколько часто используемых методов:
1. Использовать в файле конфигурации XML
То есть значение в $ {} автоматически заменяется.
<bean id = "xxx"> <name = "url" value = "$ {javadoop.jdbc.url}" /> < /bean>2. Использовать через @value inception
@Value ("$ {javadoop.jdbc.url}") частная строковая URL;3. Получить через окружающую среду
Есть некоторые вещи, на которые можно обратить внимание на этот метод. Не все методы конфигурации поддерживают получение значений свойств через интерфейс среды. Личный тест может использоваться только при использовании аннотации @PropertySource, в противном случае вы получите NULL. Что касается того, как это настроить, я расскажу об этом сразу ниже.
@AutowiredPrivate Environment Env; public String getUrl () {return env.getProperty ("javadoop.jdbc.url");}Если он зарегистрирован в Spring Boot Application.properties, это нормально.
Конфигурация свойств
Ранее мы упоминали, как использовать свойства, которые мы настроили, так как их настроить? Spring предоставляет много методов конфигурации.
1. Настройка через XML
Ниже приведен наиболее часто используемый метод конфигурации, и многие проекты написаны так:
<Контекст: Property Placeholder location = "classpath: sys.properties" />
2. Настроить через @propertysource
Предыдущая конфигурация XML очень распространена, но если у вас также есть побуждение устранить все файлы конфигурации XML, вы должны использовать следующий метод:
@Propertysource ("classpath: sys.properties")@configurationpublic class javadoopconfig {}Обратите внимание, что @PropertySource должен использоваться с @Configuration здесь, поэтому я не буду вдаваться в подробности.
3. Propertyplaceholderconfigurer
Если читатели видели это, не имеет значения, удивлены ли они. Так он использовался до весны 3.1:
<Bean> <name = name = "locations"> <sist> <datue> classpath: sys.properties </value> </list> </property> <name = "IgnoreUnresolvableplaceholders" value = "true"/> <!-Некоторые свойства могут быть настроены здесь-> </bean>
Конечно, мы также можем использовать соответствующую версию конфигурации Java:
@Beanpublic propertyplaceholderconfigurer propetiess () {propertyplaceholderconfigurer ppc = new PropertyplaceholderConfigurer (); Resource [] resources = new classpathresource [] {new classpathresource ("sys.properties")}; ppc.setlocations (ресурсы); ppc.setignoreunresolvableplaceholders (true); вернуть ppc;}4. Propertysourcesplaceholderconfigurer
Когда была запущена весна 3.1, был представлен PropertySourcesplaceholderConfigurer, который является новым классом. Обратите внимание, что во имя предыдущего PropertyPlace HolderConfigurer есть дополнительные источники, и пакет, которым он принадлежит, отличается. Это в пакете весеннего контекста.
Нет разницы в конфигурации:
<Bean> <name = name = "locations"> <sist> <datue> classpath: sys.properties </value> </list> </property> <name = "IgnoreUnresolvableplaceholders" value = "true"/> <!-Некоторые свойства могут быть настроены здесь-> </bean>
Давайте также получим версию конфигурации Java:
@Beanpublic propertysourcesplaceholderconfigurer Properties () {PropertySourcesplaceholderConfigurer PSPC = New PropertySourcesplaceholderConfigurer (); Resource [] resources = new classpathresource [] {new classpathresource ("sys.properties")}; pspc.setlocations (ресурсы); pspc.setignoreunresolvableplaceholders (true); вернуть pspc;}Весенний ботинок связан
Spring Boot - это действительно хорошая вещь, и это так хорошо использовать его из коробки. Вот краткое введение в соответствующий контент.
Быстро сгенерировать проект Spring Boot: https://start.spring.io/
Application.properties
Каждый проект имеет файл Application.properties по умолчанию. Этот файл конфигурации не должен быть зарегистрирован, как упоминалось ранее. Spring Boot поможет нам автоматически зарегистрироваться.
Конечно, может быть, вы можете изменить имя, просто укажите имя своего файла при запуске:
java -dspring.config.location = classpath: sys.properties -jar app.jar
Application- {env} .properties
Чтобы указать различные конфигурации для разных сред, мы будем использовать это.
Например, информация о подключении к базе данных тестовой среды и производственной среды отличается.
Таким образом, на основе Application.properties нам также необходимо создать новые приложения-dev.properties и application-prd.properties для настройки информации, связанной с окружающей средой, а затем указать среду при запуске.
java -dspring.profiles.active = prd -jar app.jar
Результатом является то, что конфигурации как в приложении. Прозрачные и файлы Application-Prd.properties будут зарегистрированы. Если есть дубликаты клавиш, приоритет в файлах Application-Prd.properties выше.
@ConfigurationProperties
Эта аннотация доступна только в Spring Boot.
Даже если вы не используете эту аннотацию, вы можете увидеть это в проекте с открытым исходным кодом. Вот краткое введение.
Давайте возьмем пример, чтобы быть более интуитивно понятным. Как упоминалось ранее, заполните следующую информацию в файле конфигурации, вы можете написать в Application.properties или использовать метод, введенный в первом разделе.
javadoop.database.url = jdbc: mysql: javadoop.database.username = adminjavadoop.database.password = admin123456
Файл Java:
@Configuration@configurationproperties (prefix = "javadoop.database") Общедоступная база данных класса {string url; String username; Строка Пароль; // Getters и Setters}Таким образом, база данных типа типа автоматически зарегистрирована в контейнере Spring, и свойства установлены.
Динамически изменять значения атрибутов во время запуска
Я не думаю, что это требует слишком большого введения, и те, кто использует Spring Boot, должны в основном это знать.
Конфигурация атрибута имеет порядок переопределения, то есть, когда появляется тот же ключ, значение должно преобладать.
Параметры запуска> Application- {env} .properties> Application.properties
Параметры начала динамически устанавливают свойства:
java -djavadoop.database.password = admin4321 -jar app.jar
Кроме того, вы также можете использовать переменные системной среды для установления свойств, указания случайных чисел и т. Д., что действительно очень гибкое, но это бесполезно, поэтому я не буду их представить.
Суммировать
Если читатели хотят иметь более глубокое понимание весенних свойств, им необходимо понять исходный код, связанный с интерфейсом среды Spring. Заинтересованным читателям рекомендуется искать исходный код.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.