(II)第二节:HelloWordl 案例
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 案例相关推荐
- 《LoadRunner 12七天速成宝典》—第2章2.6节第二个性能测试案例
本节书摘来自异步社区<LoadRunner 12七天速成宝典>一书中的第2章,第2.6节第二个性能测试案例,作者陈霁,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- 初等数学O 集合论基础 第二节 映射与集合的势
初等数学O 集合论基础 第二节 映射与集合的势 这一节的目标是基于映射建立比较集合"大小"的工具--集合的势(cardinality),也被称为集合的基数,这个工具是自然数的基数理 ...
- 从零开始学前端:上节课案例+break,continue以及while和do while --- 今天你学习了吗?(JS:Day5)
从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(JS) 复习:从零开始学前端:if判断,for循环,switch判断 - 今天你学习了吗?(JS:Day4) 文章目录 从零开始学前端:程 ...
- 软考-架构师-第七章-系统规划 第二节 可行性研究与效益分析 (读书笔记)
版权声明 主要针对希赛出版的架构师考试教程<系统架构设计师教程(第4版)>,作者"希赛教育软考学院".完成相关的读书笔记以便后期自查,仅供个人学习使用,不得用于任何商业 ...
- FME入门视频教程:第二节 FME模板的使用,视频讲解如何使用已经做好的FME模板工具
教程简介 本教程为适合新手学习的FME软件入门级教程,对FME的功能概念.界面及常用设置.数据读取.数据输出.转换器的使用.参数的使用.自定义转换器等几个方面进行讲解,引领进入FME的精彩世界. 课 ...
- Three 之 three.js (webgl)基础 第二个入门案例之汽车模型加载和简单模型展示
Three 之 three.js (webgl)基础 第二个入门案例之汽车模型加载和简单模型展示 目录 Three 之 three.js (webgl)基础 第二个入门案例之汽车模型加载和简单模型展 ...
- 第二节:SpingBoot单元测试
SpingBoot 365计划开始更新了,计划手敲365个SpringBoot案例回顾总结形成知识体系.目前已经输出了32节的内容.所有源码托管在GitHub和Gitee上. 1.第一节:创建Spri ...
- LOGO特训营 第二节 文字与图形的搭配关系
第二节 文字与图形的搭配关系 文章目录 一.辨识图文Logo好坏 案例一 案例二 案例三 案例四 二.标准制图 (1)几个标准制图案例 (2)制作标准制图 <1>规范制图 <2> ...
- VUE入门笔记,第二节
VUE入门笔记,第二节 一.总结以上:实例-表格列表 [目标:实现表格数据的添加.删除和过滤筛选] [解决方案] <!DOCTYPE html> <html lang="e ...
- 第二节认识计算机教案,第二章 第二节 局域网的构建 教学设计_博客
<第二章 第二节 局域网的构建 教学设计_博客>由会员分享,可在线阅读,更多相关<第二章 第二节 局域网的构建 教学设计_博客(3页珍藏版)>请在装配图网上搜索. 1.第二章 ...
最新文章
- find函数注意事项
- jquery学习开发资料
- 【BZOJ3451】Normal【期望线性性】【点分治】【NTT卷积】
- LeetCode MySQL 178. 分数排名(dense_rank连续排名)
- Solving environment: failed with initial frozen solve.Retrying with flexible solve
- 二.路径规划---二维路径规划实车实现---gmapping+amcl+map_server+move_base
- 苹果mac 3D游戏动画开发软件:Unity Pro
- KMP算法的正确性证明及一个小优化
- 利用计算机进行频数分布表制作,excel制作交叉分组表,excel分组频数分布表
- mysql无法连接locahost_完美解决MySQL通过localhost无法连接数据库的问题
- 网线插座板上网络模块接线
- 2小时完成的第一个副业单子:Python修正excel表格数据
- Android Studio MAC M1 安装模拟器
- 【openface : RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat】
- 九宫格切图器(每天一个python小项目)
- 网络传输的加密与解密
- 《人工智能本科专业知识体系与课程设置》笔记
- 【特征匹配】BRIEF特征描述子原理及源码解析
- mysql筛选向导怎么用_Navicat筛选向导
- 新手创业的几个误区你知道吗?