spring入门案例
几个细节:
* 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入门案例相关推荐
- Spring入门案例【spring框架创建对象】(超详细)
Spring入门案例 Spring框架概述 Spring框架特点 准备过程 下载 spring-5.2.6.RELEASE-dist.zip 下载 commons-logging-1.2-bin.zi ...
- spring入门案例plus
谁控制谁:在传统的开发模式下,我们都是采用直接 new 一个对象的方式来创建对象,也就是说你依赖的对象直接由你自己控制,但是有了 IoC 容器后,则直接由 IoC 容器来控制.所以"谁控制谁 ...
- Spring入门——SpringBoot(春季靴???)
SpringBoot 什么是SpringBoot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程. SpringBo ...
- Spring入门,看这篇就够了
Spring入门,看这篇就够了 文章目录 Spring入门,看这篇就够了 一. 初识Spring 二.Spring Framework系统架构 三.核心概念 1.IoC(inversion of co ...
- Spring 入门教程
Spring 入门教程 1.参考资料 尚硅谷-Spring5框架最新版教程(idea版) 雷丰阳spring.springmvc.mybatis.spring一站式学习 项目地址:Oneby / sp ...
- Spring——入门介绍(以版本5.2为例)
目录 1.Spring框架概述 2.Spring入门案例 3.IoC介绍 (1)IoC概述 (2)IoC底层原理 (3)IoC接口 4.IoC操作--Bean 管理 (1)Bean 管理概述 (2)B ...
- Spring Data ElasticSearch入门案例
Spring Data ElasticSearch入门案例 创建maven工程elasticsearch_springdata 基于maven导入坐标 导入spring data elasticsea ...
- Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 ) 回溯 什么是Sentinel? 正文 环境准备 简单使用 复杂使用 注意事项 回溯 什么是Sentinel? ...
- loc入门案例和解读,带你快速了解spring的loc
1.loc思想 传统获取资源的方式 自己做饭:要洗菜,烧火,炒菜,煮饭等自己全过程参入工作,非常吃力,你必须熟练的掌握做饭的全部过程和每一个细节 在应用程序中的组件需要获取资源时,传统的方式是组件主动 ...
最新文章
- android app文档,android App项目需求描述文档.docx
- 如何做出受欢迎的字体排版风格?
- Spring@Cacheable注解在类内部调用失效的问题
- Map的并发处理(ConcurrentHashMap)
- java 蓝桥杯历届试题 分糖果(题解)
- knx智能照明控制系统电路图_智能照明控制系统应用效果
- SqlServer根据表中ID加序号
- QT:QSS自定义QListView实例
- 机器码反编译c语言,如何把任意一段机器码或unicode码反汇编成汇编指令
- 用python实现人脸识别毕设_用Python实现一个简单的人脸识别,原来我和这个明星如此相似...
- 一种电池过放电保护电路
- 洛谷 1571 眼红的Medusa
- Python中的string和bytes的转换
- isFinite方法详解
- VLC编译错误难解 3 fatal error: features.h: 没有那个文件或目录
- 和弦学习笔记1顺阶和弦
- python2.7安装失败_Pyside安装失败(Python 2.7.4)
- 从网上购物者角度看购物商城广告的推广模式
- 面试官:项目中最大的风险是什么?
- DISP_FUNCTION