课程链接:

1    解析

1.1  这两个注解应用在什么地方

1.2  应用方式

1.3  xml方式实现取值

2    代码演练

2.1  @ImportResource和@Value代码演练

1    解析

1.1  这两个注解应用在什么地方

接口调用,java与properties文件交互获取url和用户名密码等配置信息

1.2  应用方式

java类通过调用@Importresource找到xml,通过xml配置properties

示例:

  1. @Configuration
  2. @ImportResource("classpath:config.xml")
  3. public class StoreConfig {
  4.  
  5. @Value("${jdbc.url}")
  6. private String url;
  7.  
  8. @Value("${jdbc.userName}")
  9. private String userName;
  10.  
  11. @Value("${jdbc.passWord}")
  12. private String passWord;
  13. }

xml配置:

  1. <context:property-placeholder location="classpath:/config.properties" ignore-unresolvable="true"/>

config.properties配置:

  1. jdbc.url = 127.0.0.1
  2. jdbc.userName = root
  3. jdbc.passWord = root

1.3  xml方式实现取值

  1. <context:property-placeholder location="classpath:/config.properties" ignore-unresolvable="true"/>
  2.  
  3. <bean class="com.ddwei">
  4. <property name="url" value="${jdbc.url}"/>
  5. <property name="username" value="${jdbc.username}"/>
  6. <property name="password" value="${jdbc.password}"/>
  7. </bean>

2    代码演练

2.1  @ImportResource和@Value代码演练

测试类:

  1. package com.imooc.test.beanannotation;
  2.  
  3. import org.junit.Test;
  4.  
  5. import com.imooc.beanannotation.javabased.MyDriverManager;
  6. import com.imooc.test.base.UnitTestBase;
  7.  
  8. public class TestJavaBased extends UnitTestBase{
  9.  
  10. public TestJavaBased(){
  11. super("classpath*:spring-beanannotation.xml");
  12. }
  13.  
  14. @Test
  15. public void testStoreConfig(){
  16. System.out.println(super.getbean("store").getClass().getName());
  17. }
  18.  
  19. @Test
  20. public void testMyDriverStore(){
  21. MyDriverManager myDriverStore =super.getbean("myDriverStore");
  22. System.out.println(myDriverStore.getClass().getName());
  23. }
  24.  
  25. }

实体类:

  1. package com.imooc.beanannotation.javabased;
  2.  
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.context.annotation.ImportResource;
  7.  
  8. @Configuration
  9. @ImportResource("classpath:config.xml")
  10. public class StoreConfig {
  11.  
  12. @Value("${jdbc.url}")
  13. private String url;
  14.  
  15. @Value("${jdbc.userName}")
  16. private String userName;
  17.  
  18. @Value("${jdbc.passWord}")
  19. private String passWord;
  20.  
  21. public String getUrl() {
  22. return url;
  23. }
  24.  
  25. public void setUrl(String url) {
  26. this.url = url;
  27. }
  28.  
  29. public String getUserName() {
  30. return userName;
  31. }
  32.  
  33. public void setUserName(String userName) {
  34. this.userName = userName;
  35. }
  36.  
  37. public String getPassWord() {
  38. return passWord;
  39. }
  40.  
  41. public void setPassWord(String passWord) {
  42. this.passWord = passWord;
  43. }
  44.  
  45. // @Bean(name="store",initMethod="init",destroyMethod="destroy")
  46. // public Store getStringStore(){
  47. // return new StringStore();
  48. // }
  49.  
  50. /**
  51. * 此处作为实体类:
  52. * 通过@bean将myDriverStore注解到spring容器中,供TestJavaBased调用
  53. * @return
  54. */
  55. @Bean
  56. public MyDriverManager myDriverStore() {
  57. return new MyDriverManager(url, userName, passWord);
  58. }
  59.  
  60. }

关联类:

  1. package com.imooc.beanannotation.javabased;
  2.  
  3. /**
  4. * 测试基类
  5. * 被StoreConfig 以bean注解的方式引入
  6. * @author weijingli
  7. *
  8. */
  9. public class MyDriverManager {
  10.  
  11. /**
  12. * 有参构造方法,被StoreConfig调用
  13. * @param url
  14. * @param userName
  15. * @param passWord
  16. */
  17. public MyDriverManager(String url,String userName,String passWord) {
  18. System.out.println("This url is "+url);
  19. System.out.println("This userName is "+userName);
  20. System.out.println("This url passWord "+passWord);
  21. }
  22.  
  23. }

config.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context.xsd">
  9.  
  10. <context:property-placeholder location="classpath:/config.properties" ignore-unresolvable="true"/>
  11.  
  12. </beans>

config.properties:

  1. jdbc.url = 127.0.0.1
  2. jdbc.userName = root
  3. jdbc.passWord = root

spring-beanannotation.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context.xsd">
  9.  
  10. <context:component-scan base-package="com.imooc.beanannotation"></context:component-scan>
  11.  
  12. </beans>

打印结果:

  1. 三月 30, 2019 5:49:45 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
  2. 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@789df61d: startup date [Sat Mar 30 17:49:45 CST 2019]; root of context hierarchy
  3. 三月 30, 2019 5:49:45 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
  4. 信息: Loading XML bean definitions from URL [file:/F:/xiangmu3/Xin/FuQiang/Spring/ddwei-dao/target/classes/spring-beanannotation.xml]
  5. 三月 30, 2019 5:49:46 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
  6. 信息: Loading XML bean definitions from class path resource [config.xml]
  7. This url is 127.0.0.1
  8. This userName is root
  9. This url passWord root
  10. com.imooc.beanannotation.javabased.MyDriverManager
  11. 三月 30, 2019 5:49:47 下午 org.springframework.context.support.ClassPathXmlApplicationContext doClose
  12. 信息: Closing org.springframework.context.support.ClassPathXmlApplicationContext@789df61d: startup date [Sat Mar 30 17:49:45 CST 2019]; root of context hierarchy

Spring课程 Spring入门篇 4-6 Spring bean装配之基于java的容器注解说明--@ImportResource和@Value java与properties文件交互的更多相关文章

  1. Spring @Bean注解 (基于java的容器注解)

    基于java的容器注解,意思就是使用Java代码以及一些注解,就可以取代spring 的 xml配置文件. 1-@Configuration & @Bean的配合 @Configuration ...

  2. Spring Boot -01- 快速入门篇(图文教程)

    Spring Boot -01- 快速入门篇(图文教程) 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到[慕课网]手机 app ...

  3. Spring实践系列-入门篇(一)

    本文主要介绍了在本地搭建并运行一个Spring应用,演示了Spring依赖注入的特性 1 环境搭建 1.1 Maven依赖 目前只用到依赖注入的功能,故以下三个包已满足使用. <properti ...

  4. Spring Cloud Alibaba入门篇

    学习条件 了解web三层架构 熟练应用SSM架构 了解Maven管理工具的使用 熟练使用SpringBoot,以及了解SpringBoot基本原理. 了解部分术语:应用.工具.耦合.负载等 温馨提示: ...

  5. Spring Data JPA 入门篇

    Spring Data JPA是什么 它是Spring基于ORM框架(如hibernate,Mybatis等).JPA规范(Java Persistence API)封装的一套 JPA应用框架,可使开 ...

  6. Spring Boot源码(四):Bean装配

    为了演示Spring中对象是如何创建并放到spring容器中,这里新建一个maven项目: 其中pom.xm文件中只引入了一个依赖: <dependencies> <dependen ...

  7. Spring学习(七)bean装配详解之 【通过注解装配 Bean】【自动装配的歧义解决】

    自动装配 1.歧义性 我们知道用@Autowired可以对bean进行注入(按照type注入),但如果有两个相同类型的bean在IOC容器中注册了,要怎么去区分对哪一个Bean进行注入呢? 如下情况, ...

  8. Spring学习(六)bean装配详解之 【通过注解装配 Bean】【基础配置方式】

    通过注解装配 Bean 1.前言 优势 1.可以减少 XML 的配置,当配置项多的时候,XML配置过多会导致项目臃肿难以维护 2.功能更加强大,既能实现 XML 的功能,也提供了自动装配的功能,采用了 ...

  9. Spring课程 Spring入门篇 4-8 Spring bean装配之基于java的容器注解说明--基于泛型的自动装配

    1 解析 1.1 什么是泛型? 1.2 泛型有什么作用? 1.3 泛型装配样式? 2 代码演练 2.1 泛型应用 1 解析 1.1 什么是泛型? Java泛型设计原则:只要在编译时期没有出现警告,那么 ...

随机推荐

  1. Python DataFrame 如何删除原来的索引,重新建立索引

    删除行索引重排: ser.reset_index(drop = True) df.reset_index(drop = True) ---------------------------------- ...

  2. WCF 客户端连接慢

    WCF客户端第一次连接超过1分钟,以后再连接就快了. 在 Config中加入 <basicHttpBinding> <binding name="BasicHttpBind ...

  3. django form tips

    1.form将获取的参数传递到field 2.field中的函数 to_python 数据库到python中变量 get_prep_value python变量到数据库 validate 验证,也可以 ...

  4. CentOS 中安装 mysql 5.7+

    参考:https://www.cnblogs.com/jimboi/p/6405560.html 1.下载rpm文件 wget https://dev.mysql.com/get/mysql57-co ...

  5. Qt 学习之路 2(76):QML 和 QtQuick 2

    Home / Qt 学习之路 2 / Qt 学习之路 2(76):QML 和 QtQuick 2 Qt 学习之路 2(76):QML 和 QtQuick 2  豆子  2013年12月18日  Qt ...

  6. LDdecay计算和做图

    先下载PopLDdecay软件(开源GitHub) https://github.com/BGI-shenzhen/PopLDdecay PopLDdecay的安装 1) INSTALL Method ...

  7. Subsequence(二分)

    A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, a ...

  8. bzoj2190 仪仗队

    题目传送门 思路: 哪些点能被人看到,其实就是哪些点不会被其他点挡住,只要顶点的坐标互质就可以了,互质用欧拉函数算.特殊考虑一下n=1和0的情况. 欧拉函数,Φ(x)=x(1-1/p1)(1-1/p2 ...

  9. Putty使用帐号和密码的自动登录

    Putty使用ssh key做验证登陆是最方便的,不用密码.如果不想做key exchange,只是单纯想保存帐号密码做自动登陆,可以借助bat文件的方式如下,其中MyServer是已经保存了的ses ...

  10. 【研究】Struts2-048漏洞

    1.1 漏洞背景 2017年7月7日,Apache Struts发布最新的安全公告,Apache Struts2-strus1-plugin插件存在远程代码执行的高危漏洞,漏洞编号为CVE-2017- ...