几个细节:

* 1)、ApplicationContext(IOC容器的接口)
* 2)、给容器中注册一个组件;我们也从容器中按照id拿到了这个组件的对象?
*     组件的创建工作,是容器完成;
*     Person对象是什么时候创建好了呢?
*     容器中对象的创建在容器创建完成的时候就已经创建好了;
* 3)、同一个组件在ioc容器中是单实例的;容器启动完成都已经创建准备好的;
* 4)、容器中如果没有这个组件,获取组件?报异常
* org.springframework.beans.factory.NoSuchBeanDefinitionException:
* No bean named 'person03' is defined
* 5)、ioc容器在创建这个组件对象的时候,(property)会利用setter方法为javaBean的属性进行赋值;
* 6)、javaBean的属性名是由什么决定的?getter/setter方法是属性名;set去掉后面那一串首字母小写就是属性名;
*     private String lastName;?
*     所有getter/setter都自动生成!



写配置

 spring的配置文件中,集合了spring的ioc容器管理的所有组件(会员清单);

 创建一个Spring Bean Configuration File(Spring的bean配置文件);

一个Bean标签可以注册一个组件(对象、类)

class:写要注册的组件的全类名

id:这个对象的唯一标示;

Person.java

package com.atguigu.bean;public class Person {private String lastName;private Integer age;private String gender;private String email;public Person() {System.out.println("person创建了...");}public String getLastName() {return lastName;}public void setLastName(String lastName) {System.out.println("setLastName..."+lastName);this.lastName = lastName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String toString() {return "Person [lastName=" + lastName + ", age=" + age + ", gender="+ gender + ", email=" + email + "]";}}

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.atguigu.bean.Person"><!--使用property标签为Person对象的属性赋值  name="lastName":指定属性名value="张三":为这个属性赋值--><property name="lastName" value="张三"></property><property name="age" value="18"></property><property name="email" value="zhangsan@atguigu.com"></property><property name="gender" value="男"></property></bean><bean id="person02" class="com.atguigu.bean.Person"><property name="lastName" value="小花"></property></bean></beans>

IOCTest.java

package com.atguigu.test;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.atguigu.bean.Person;public class IOCTest {/*** 从容器中拿到这个组件*/@Testpublic void test() {//ApplicationContext:代表ioc容器//ClassPathXmlApplicationContext:当前应用的xml配置文件在 ClassPath下//根据spring的配置文件得到ioc容器对象//ApplicationContext ioc = new ClassPathXmlApplicationContext("com/atguigu/bean/ioc.xml");ApplicationContext ioc = new ClassPathXmlApplicationContext("com/atguigu/bean/ioc.xml");//容器帮我们创建好对象了;
//      System.out.println("容器启动完成....");Person bean = (Person) ioc.getBean("person01");System.out.println(bean);Object bean2 = ioc.getBean("person01");System.out.println(bean == bean2);
//System.out.println("==================");
//      Object bean3 = ioc.getBean("person03");}}
/*** 存在的几个问题;* 1)、src,源码包开始的路径,称为类路径的开始;*        所有源码包里面的东西都会被合并放在类路径里面;*        java:/bin/*        web:/WEB-INF/classes/* 2)、导包commons-logging-1.1.3.jar(依赖)* 3)、先导包再创建配置文件;* 4)、Spring的容器接管了标志了s的类;*/
/*** 几个细节:* 1)、ApplicationContext(IOC容器的接口)* 2)、给容器中注册一个组件;我们也从容器中按照id拿到了这个组件的对象?*        组件的创建工作,是容器完成;*        Person对象是什么时候创建好了呢?*        容器中对象的创建在容器创建完成的时候就已经创建好了;* 3)、同一个组件在ioc容器中是单实例的;容器启动完成都已经创建准备好的;* 4)、容器中如果没有这个组件,获取组件?报异常* org.springframework.beans.factory.NoSuchBeanDefinitionException: * No bean named 'person03' is defined* 5)、ioc容器在创建这个组件对象的时候,(property)会利用setter方法为javaBean的属性进行赋值;* 6)、javaBean的属性名是由什么决定的?getter/setter方法是属性名;set去掉后面那一串首字母小写就是属性名;*        private String lastName;?*        所有getter/setter都自动生成!*/

spring入门案例相关推荐

  1. Spring入门案例【spring框架创建对象】(超详细)

    Spring入门案例 Spring框架概述 Spring框架特点 准备过程 下载 spring-5.2.6.RELEASE-dist.zip 下载 commons-logging-1.2-bin.zi ...

  2. spring入门案例plus

    谁控制谁:在传统的开发模式下,我们都是采用直接 new 一个对象的方式来创建对象,也就是说你依赖的对象直接由你自己控制,但是有了 IoC 容器后,则直接由 IoC 容器来控制.所以"谁控制谁 ...

  3. Spring入门——SpringBoot(春季靴???)

    SpringBoot 什么是SpringBoot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程. SpringBo ...

  4. Spring入门,看这篇就够了

    Spring入门,看这篇就够了 文章目录 Spring入门,看这篇就够了 一. 初识Spring 二.Spring Framework系统架构 三.核心概念 1.IoC(inversion of co ...

  5. Spring 入门教程

    Spring 入门教程 1.参考资料 尚硅谷-Spring5框架最新版教程(idea版) 雷丰阳spring.springmvc.mybatis.spring一站式学习 项目地址:Oneby / sp ...

  6. Spring——入门介绍(以版本5.2为例)

    目录 1.Spring框架概述 2.Spring入门案例 3.IoC介绍 (1)IoC概述 (2)IoC底层原理 (3)IoC接口 4.IoC操作--Bean 管理 (1)Bean 管理概述 (2)B ...

  7. Spring Data ElasticSearch入门案例

    Spring Data ElasticSearch入门案例 创建maven工程elasticsearch_springdata 基于maven导入坐标 导入spring data elasticsea ...

  8. Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )

    Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 ) 回溯 什么是Sentinel? 正文 环境准备 简单使用 复杂使用 注意事项 回溯 什么是Sentinel? ...

  9. loc入门案例和解读,带你快速了解spring的loc

    1.loc思想 传统获取资源的方式 自己做饭:要洗菜,烧火,炒菜,煮饭等自己全过程参入工作,非常吃力,你必须熟练的掌握做饭的全部过程和每一个细节 在应用程序中的组件需要获取资源时,传统的方式是组件主动 ...

最新文章

  1. android app文档,android App项目需求描述文档.docx
  2. 如何做出受欢迎的字体排版风格?
  3. Spring@Cacheable注解在类内部调用失效的问题
  4. Map的并发处理(ConcurrentHashMap)
  5. java 蓝桥杯历届试题 分糖果(题解)
  6. knx智能照明控制系统电路图_智能照明控制系统应用效果
  7. SqlServer根据表中ID加序号
  8. QT:QSS自定义QListView实例
  9. 机器码反编译c语言,如何把任意一段机器码或unicode码反汇编成汇编指令
  10. 用python实现人脸识别毕设_用Python实现一个简单的人脸识别,原来我和这个明星如此相似...
  11. 一种电池过放电保护电路
  12. 洛谷 1571 眼红的Medusa
  13. Python中的string和bytes的转换
  14. isFinite方法详解
  15. VLC编译错误难解 3 fatal error: features.h: 没有那个文件或目录
  16. 和弦学习笔记1顺阶和弦
  17. python2.7安装失败_Pyside安装失败(Python 2.7.4)
  18. 从网上购物者角度看购物商城广告的推广模式
  19. 面试官:项目中最大的风险是什么?
  20. DISP_FUNCTION

热门文章

  1. Day71 分页,cookie and Session
  2. IOS UILabel 根据内容自适应高度
  3. Linux下rz,sz
  4. Flex/Silverlight的技术比较
  5. USB2.0 设备类代码表
  6. Android接口和框架学习
  7. ubuntu11.04解决root不能登录的问题
  8. windows 3.x编程指南_18000 MHz 可编程衰减器
  9. python刷题软件代码_Python使用docx模块实现刷题功能代码
  10. zabbix3调用接口发送短信告警