HelloWorld:通过各种方式给容器中注册对象

  以前是自己new对象,现在所有的对象交给容器创建;给容器中注册组件

  框架使用流程:

  (1)导包

    使用 Maven 的方式,添加依赖:

    <properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><spring-version>4.0.0.RELEASE</spring-version></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring-version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring-version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring-version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>${spring-version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring-version}</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.3</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>

    注意:Spring 运行的时候依赖一个 日志包,如果没有就会报错。

  (2)编写配置文件

    Spring的配置文件中,集合了Spring的ioc容器管理的所有组件(类)

    Idea2020版创建顺序:New—》XML Configuration File----》Spring Config

  (3)测试

    使用 Spring 创建对象,为属性赋值

    Person 类:

public class Person {private String lastName;private Integer age;private String gender;private String email;//省略有参无参、get/set()、toString()
}

    ioc.xml 配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--注册一个Person对象,Spring会自动创建这个Person对象--><!--一个bean标签可以注册一个组件(对象,类)class:写要注册的组件全类名id:这个对象的唯一标识--><bean id="person01" class="com.njf.spring.bean.Person"><!--使用property标签为Person对象的属性赋值name="lastName": 指定属性名value="子龙": 指定属性值--><property name="lastName" value="子龙"></property><property name="age" value="18"></property><property name="email" value="zilong@achang.com"></property><property name="gender" value="男"></property></bean></beans>

    通过 Spring的 IOC 容器创建 Person 类实例

   /*** 从容器中拿到这个组件*/@Testpublic void test() {//ApplicationContext:代表ioc容器//ClassPathXmlApplicationContext:当前应用的xml配置文件在ClassPath下//根据Spring的配置文件得到ioc容器对象ApplicationContext ioc = new ClassPathXmlApplicationContext("ioc.xml");//容器帮我们创建好了对象Person person01 = (Person) ioc.getBean("person01");Person person02 = (Person) ioc.getBean("person01");System.out.println("person02 = " + person02);System.out.println(person01 == person02); //true//System.out.println("=============================");//Person person03 = (Person) ioc.getBean("person03");//No bean named 'person02' available}

  总结

    src,源码包开始路径,成为类路径的开始; 所有源码包的东西都会被合并放在类路径

java: /bin/

web: /WEB-INF/classes/

  (1)ApplicationContext(IOC容器的接口)中的

—new ClassPathXmlApplicationContext(“ioc.xml”):ioc配置文件在类路径下
—FileSystemXmlApplicationContext(“F://ioc.xml”):ioc配置文件在磁盘路径下

  (2)给容器中注册了组件;我们也从容器中按照id拿到了组件的对象了吗?

      组件的创建工作,是容器完成的

    Person对象是什么时候被创建的?

      容器中对象的创建在容器创建完成时就已经创建好了

  (3)同一个组件在 ioc 容器中是单实例的,且在容器启动完成都已经创建好了

  (4)如果容器中没有组件,无法获得 报异常----> No bean named ‘person02’ available

  (5)ioc容器在创建这个组件对象时,会利用其setter()方法为javaBean的属性赋值

  (6)javaBean的属性名是由什么决定的?

    由getter/setter方法后面的名决定,首字母小写所有的getter/setter都自动生成!!!千万别乱改

(II)第二节:HelloWordl 案例相关推荐

  1. 《LoadRunner 12七天速成宝典》—第2章2.6节第二个性能测试案例

    本节书摘来自异步社区<LoadRunner 12七天速成宝典>一书中的第2章,第2.6节第二个性能测试案例,作者陈霁,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  2. 初等数学O 集合论基础 第二节 映射与集合的势

    初等数学O 集合论基础 第二节 映射与集合的势 这一节的目标是基于映射建立比较集合"大小"的工具--集合的势(cardinality),也被称为集合的基数,这个工具是自然数的基数理 ...

  3. 从零开始学前端:上节课案例+break,continue以及while和do while --- 今天你学习了吗?(JS:Day5)

    从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(JS) 复习:从零开始学前端:if判断,for循环,switch判断 - 今天你学习了吗?(JS:Day4) 文章目录 从零开始学前端:程 ...

  4. 软考-架构师-第七章-系统规划 第二节 可行性研究与效益分析 (读书笔记)

    版权声明 主要针对希赛出版的架构师考试教程<系统架构设计师教程(第4版)>,作者"希赛教育软考学院".完成相关的读书笔记以便后期自查,仅供个人学习使用,不得用于任何商业 ...

  5. FME入门视频教程:第二节 FME模板的使用,视频讲解如何使用已经做好的FME模板工具

    ​教程简介 本教程为适合新手学习的FME软件入门级教程,对FME的功能概念.界面及常用设置.数据读取.数据输出.转换器的使用.参数的使用.自定义转换器等几个方面进行讲解,引领进入FME的精彩世界. 课 ...

  6. Three 之 three.js (webgl)基础 第二个入门案例之汽车模型加载和简单模型展示

    Three 之 three.js (webgl)基础 第二个入门案例之汽车模型加载和简单模型展示 目录 ​Three 之 three.js (webgl)基础 第二个入门案例之汽车模型加载和简单模型展 ...

  7. 第二节:SpingBoot单元测试

    SpingBoot 365计划开始更新了,计划手敲365个SpringBoot案例回顾总结形成知识体系.目前已经输出了32节的内容.所有源码托管在GitHub和Gitee上. 1.第一节:创建Spri ...

  8. LOGO特训营 第二节 文字与图形的搭配关系

    第二节 文字与图形的搭配关系 文章目录 一.辨识图文Logo好坏 案例一 案例二 案例三 案例四 二.标准制图 (1)几个标准制图案例 (2)制作标准制图 <1>规范制图 <2> ...

  9. VUE入门笔记,第二节

    VUE入门笔记,第二节 一.总结以上:实例-表格列表 [目标:实现表格数据的添加.删除和过滤筛选] [解决方案] <!DOCTYPE html> <html lang="e ...

  10. 第二节认识计算机教案,第二章 第二节 局域网的构建 教学设计_博客

    <第二章 第二节 局域网的构建 教学设计_博客>由会员分享,可在线阅读,更多相关<第二章 第二节 局域网的构建 教学设计_博客(3页珍藏版)>请在装配图网上搜索. 1.第二章 ...

最新文章

  1. find函数注意事项
  2. jquery学习开发资料
  3. 【BZOJ3451】Normal【期望线性性】【点分治】【NTT卷积】
  4. LeetCode MySQL 178. 分数排名(dense_rank连续排名)
  5. Solving environment: failed with initial frozen solve.Retrying with flexible solve
  6. 二.路径规划---二维路径规划实车实现---gmapping+amcl+map_server+move_base
  7. 苹果mac 3D游戏动画开发软件:Unity Pro
  8. KMP算法的正确性证明及一个小优化
  9. 利用计算机进行频数分布表制作,excel制作交叉分组表,excel分组频数分布表
  10. mysql无法连接locahost_完美解决MySQL通过localhost无法连接数据库的问题
  11. 网线插座板上网络模块接线
  12. 2小时完成的第一个副业单子:Python修正excel表格数据
  13. Android Studio MAC M1 安装模拟器
  14. 【openface : RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat】
  15. 九宫格切图器(每天一个python小项目)
  16. 网络传输的加密与解密
  17. 《人工智能本科专业知识体系与课程设置》笔记
  18. 【特征匹配】BRIEF特征描述子原理及源码解析
  19. mysql筛选向导怎么用_Navicat筛选向导
  20. 新手创业的几个误区你知道吗?

热门文章

  1. 二、JavaWeb动态网页基础
  2. 微信小程序getUserInfo返回拼音的解决办法
  3. 不懂技术怎么让服务器更安全,几个插件让你的服务器更安全(防攻击防注入)
  4. android 多张图片渐变切换控件
  5. 汽车零部件加工行业工业互联网智能工厂解决方案
  6. Bloodsucker ZOJ - 3551
  7. 贪吃蛇小游戏制作(3)
  8. 【前端开发】:行间距和首行缩进
  9. 云服务器安装Linux桌面,centos 云服务器有桌面吗 如何进行安装
  10. 前端项目性能优化方案有哪些