模块总述:

分为五个模块:诸如基本值,注入Bean对象,注入集合,注入spring表达式,注入null或者空字符串。
/***  Java bean*   规范*   1 这个类必须有包*   2 必须继承  Serializable*   3 有无参的构造器*   4 有get set 方法*   *   注意:其实现在用注解的比较多,但是xml是最基本的。*/

一.注入基本值

<value>元素可以通过字符串指定属性或者构造器的值,容器会将字符串从
Java.lang.String类型转化为实际的属性或参数类型然后注入给bean
<bean id="student" class="com.throne.Student" ><property name="name" value=“FontThrone”></property></span><property name="age">
<span style="white-space:pre"> </span><value>18<value>
</property></bean>
private String name;private String age;public Student() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}
String str="applicationContext.xml";ApplicationContext ac=new ClassPathXmlApplicationContext(str);Student s=ac.getBean("student",Student.class);System.out.println(s.getAge()+"\n"+s.getName());

结果:

18
FontThrone

二.注入Bean对象

<bean id="student" class="com.lpc.entity.Student" >//交给容器管理,注册时,如果是Bean对象,要用ref引用<property name="book" ref="book"></property></bean><bean id="book" class="com.throne.Book"><property name="bookId" value="12"></property><property name="bookName" value="平凡的世界"></property></bean>
<span style="white-space:pre"> </span>private Book book;public Student() {}...public Book getBook() {return book;}public void setBook( Book book) {this.book = book;}
//之前的重复部分(创建ApplicationContext等)省略掉
System.out.println(s.getBook().getBookName());结果:
<span style="white-space:pre"> </span>平凡的世界

三.注入集合

    <bean id="message" class="com.throne.entity.Message"><property name="list" ref="ppp"></property><property name="set"><set><value>张三</value><value>李四</value><value>王五</value></set></property><property name="map"><map><entry key="语文" value="80"></entry><entry key="数学" value="100"></entry><entry key="英语" value="60"></entry></map></property><!--  1  采用引入的方式注入集合a 先声明集合bean,然后采用引用的方式将这些bean注入给Message使用<util>标签声明集合bean,然后在MessageBean下使用<property>标签引用这些集合bean。2  为什么要使用引入的方式引入的方式就是为了我们方便复用代码  !important  如果别的bean里面也要复用  那么就用它 --><util:list id="ppp"><value>兰州</value><value>北京</value><value>长沙</value></util:list> 
        private List<String> list;private Set<String> set;private Map<String,Object> map;private Properties properties;
//  注意导入的是until的包,而非sun的:import java.util.Properties;public Message() {}public List<String> getList() {return list;}public void setList(List<String> list) {this.list = list;}public Set<String> getSet() {return set;}public void setSet(Set<String> set) {this.set = set;}public Map<String, Object> getMap() {return map;}public void setMap(Map<String, Object> map) {this.map = map;}public Properties getProperties() {return properties;}public void setProperties(Properties properties) {this.properties = properties;}
                Message m=ac.getBean("message",Message.class);List<String> list=m.getList();for(String ss:list){System.out.println(ss);}Set set=m.getSet();Iterator<String> it=set.iterator();while(it.hasNext()==true){System.out.println(it.next());System.out.println("11111");}

结果:

兰州
北京
长沙
张三
11111
李四
11111
王五
11111

四.表达式注入

        A a=ac.getBean("ddd",A.class);System.out.println(a.getUser());/**  注入表达式Spring引入了一种表达式语言,在语法上与EL的语法很相似,用来读取一个bean中的属性。xml配置:<util:properties id="jdbc1"  location="classpath:db.properties"></util:properties>--><bean id="ddd" class="com.tanzhou.entity.A"><property name="user" value="#{jdbc1.user}"></property></bean>类:public class A implements Serializable {private String user;public A() {}public String getUser() {return user;}public void setUser(String user) {this.user = user;}执行:A a=ac.getBean("ddd",A.class);    System.out.println(a.getUser());* */

此时读取的是与配置的xml文件同一目录下的db.properties文件,它只有一句话的内容:user=scott

五.注入null或者空字符串

注入空值和字符串(了解内容)
     给一个属性注入字符串
    <property  name=“name” value=“”></property>
    注入空值
    <property  name=“name”><null/><property>

JAVA_OA管理系统(三):Spring参数注入相关推荐

  1. JAVA_OA管理系统(三)番外篇:Myeclipse导入Spring源码包

    世界上只有10种程序员,看源码的和不看源码的: 今天,我们要看源码: 首先先用Ctrl键随便找个spring或者中的类,(其实myeclipse和eclipse导入源码包都是一样的) 第二步: 然后是 ...

  2. JAVA_OA管理系统(四)番外篇:使用Spring注解注入属性

    本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifier,@Pos ...

  3. Spring官网阅读(三)自动注入

    上篇文章我们已经学习了1.4小结中关于依赖注入跟方法注入的内容.这篇文章我们继续学习这结中的其他内容,顺便解决下我们上篇文章留下来的一个问题-----注入模型. 前言: 在看下面的内容之前,我们先要对 ...

  4. Spring 依赖注入的理解及三种注入方式

    Spring 依赖注入概念和三种注入方式(理解及应用) 什么是注入 要了解Spring的三种注入方式首先前提是得先了解一下什么是注入,相信很多人对这个概念都是模糊不清的,网上的解释是这样的: 依赖注入 ...

  5. spring依赖注入三种方式

    首先,要学习Spring中的Bean的注入方式,就要先了解什么是依赖注入. 依赖注入是指:让调用类对某一接口的实现类的依赖关系由第三方注入,以此来消除调用类对某一接口实现类的依赖. Spring容器中 ...

  6. spring依赖注入的三种方式以及优缺点

    spring依赖注入的三种方式以及优缺点 一.依赖注入的三种方式 1.通过构造器注入.(spring4.3之后,推荐使用) 2.通过setter注入.(spring4.3之前,推荐使用) 3通过fil ...

  7. spring 依赖注入的三种方式

    @Autowired:构造器,参数,方法,属性:都是从容器中获取参数组件的值: set方法注入: 构造器注入: 作为Bean方法的参数注入: 例子:Boss 注入Car类 第一种.set方式注入 // ...

  8. Spring 依赖注入三种方式的实现,及循环依赖问题的解决(源码+XML配置)

    搬砖啦,搬砖啦,这几天在看Spring相关的书,下面给大家分享一下这几天的心得与收获,Go Go Go! Spring支持两种依赖注入方式,分别是属性注入,构造函数注入.除此之外,Spring还支持工 ...

  9. spring常用的三种依赖注入方式

    平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...

最新文章

  1. jquery 重写 html5 验证,Jquery前端滑动验证方式功能实现
  2. JDBC基础知识复习
  3. 【译】Engineering Security Through Coordination Problems
  4. hibernate数据类型_Hibernate类型初学者指南
  5. Html 进行DOM 操作(放缩,颜色...),HTML抓图(放缩,滚动,拼接)
  6. HTML、CSS --chrome书签整理
  7. [小技巧]为Atlas AutoComplete加上滚动条
  8. matlab数学建模题及答案,数学建模中30道经典 MATLAB程序.doc
  9. win10添加惠普hp laserjet 1010HB打印机
  10. 【科创人独家】云风:从创业到招安,自由的游戏玩家+务实的程序员
  11. 6-3 jmu-python-函数-找钱 (10分)
  12. 关键字CORRESPONDING的用法
  13. 全屏背景图移动端滚动时白底问题
  14. python 环境配置
  15. 查看检测排名各网站的网站
  16. linux系统下html工具,Linux下五个好用的HTML编缉器
  17. Windows重装电脑系统教程(制作启动U盘+重装系统)建议收藏
  18. BLE蓝牙的广播类型
  19. 液晶显示屏行业信息汇总
  20. IE安全系列之——昨日黄花:IE中的ActiveX(I)

热门文章

  1. IE浏览器导出问题。。好要命
  2. 用Docker搭建Nexus私服
  3. 《慕课React入门》总结
  4. 跟着实例学习设计模式(7)-原型模式prototype(创建型)
  5. Vue route页面跳转,传递参数接收到的参数为空
  6. python脚本在命令行中传递参数(附字符查找小案例)
  7. tesklink 管理员项目角色被修改后的解决方法
  8. Spring框架你敢写精通,面试官就敢问@Autowired注解的实现原理
  9. MySQL 百万级数据量分页查询方法及其优化
  10. Spring@Cacheable注解在类内部调用失效的问题