1. Первый шаг, чтобы обнаружить синтаксис является правильным
@Value ( " $ {испытание} " ) частный тест строки;
2. Во-вторых, если сконфигурирован для обнаружения файла конфигурации
URL = тест
имя пользователя = имя пользователя
пароль = пароль
3. Третий шаг заключается в выявлении ли увеличение @Component комментарий
Весной, использованию аннотаций весной, то вам нужно использовать пружину для управления объектами, а не сами по себе новой, в противном случае это приведет к провалу.
@Component // объекты класса удалось быть пружинные общественного класса DbUtils { @value ( "URL $ {}" ) Частная строка URL; @value ( "имя пользователя $ {}" ) Частная строка имя пользователя; @value ( «{$ } пароль " ) Частная строка пароля; }
4. На четвертом этапе написания кода обнаружения режима
У больше не участвовать в конструкторе, в эксплуатацию новых объектов. В противном случае это приведет к @value комментарий не удалось. (Я вышел на этом шаге состоит в яму).
@PostConstruct первоначальный контекст может быть использован для инициализации записи, он закончит загрузочную информацию пружинной, позвонить и вызвать только один раз.
5. @ Value не может быть введен в статические свойства
@Value использовать непосредственно на статические свойства не могут быть введены содержание !!! таким образом всегда будет нулевым.
Причина
была найдена @value не впрыскивается непосредственно к значению статического свойства, пружина не позволяет / не поддерживает значение впрыскивается в статическом переменный, пружинной опоре метод набора для инъекций, мы можем использовать нестатический сеттер инъекционные метода статические переменные и классы должны использовать @value .. платить весна управляется так же , как @Autowired не может вводить одни и те же
детали: https://blog.csdn.net/sqlgao22/article/details/100100314
улучшать
Методы использования инкубационного назначение атрибутов и инкубационные методы не могут иметь статические
Идея метода будет сгенерирован автоматически статичным, вы должны быть удалены вручную.
@Component // класс к прыжку объектов управляемого общественного класса DbUtils { Private статической Строка URL; Private Статической строки имя пользователь; Private Статической строки пароль; @value ( «{$ URL}») // удалить статический публичный недействительный setUrl ( URL String) { DBUtils.url = URL; } @value ( "имя пользователя $ {}" ) общественного недействительными setUsername (String имя пользователя) { DBUtils.username = имя пользователя; } @value ("$ {пароль}" ) общественного недействительный SetPassword (String пароль) { DBUtils.password = пароль; } // 查看是否注入 общественности статической недействительным прибудете () { System.out.println ( "===== ===== URL" + URL); System.out.println ( "===== ===== имя пользователя" + имя пользователя); System.out.println ( "===== пароль =====" + пароль); } }
тест
@RequestMapping ( "/ получить" ) @ResponseBody общественного Струнный Get () { DBUtils.get (); вернуться «получить» ; }
После выхода теста:
Успешно впрыскивается атрибуты.
Статья оттиск: https://blog.csdn.net/sqlgao22/article/details/100096348