spring笔记一详解编程语言
Ioc—Inversion of Control,即“节制反转”,不是什么手艺,而是一种设计思惟。
我们在Biz的文件夹下面,建立一个类SpringContext.java
public class SpringContext{ private static ApplicationContext ctx;//静态变量 //get()方式 Public static ApplicationContext getCtx(){ return ctx; static { if(ctx == null){ ctx = new ClassPathXmlApplicationContext(“applicationContext.xml”); }
如许,在利用spring挪用对象时可以直接采用如下代码:
public void addBook(Tbook bk)throws Exception IBookDao dao =(IBookDao) SpringContext.getCtx( ).getBean(“bookDao”); //这里挪用单例模式的方式就可以获得Context 对象 }用静态工场体式格局对Bean进行实例化(建立类的对象)
applicationContext.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" !-- 静态工场获得bean实例 -- bean id="product" factory-method="getProduct" !-- getProduct静态方式获得bean实例 -- /bean /beans
Product 产物类
public class Product { public String getproducetname(){ return "xiaomi10"; }
StaticFactory 静态工场类
public class StaticFactory { //静态的方式 可以获得产物的对象 public static Product getProduct(){ return new Product(); }
Test 测试类
ApplicationContext app = new ClassPathXmlApplicationContext("com/chinasofti/util/applicationContext.xml"); Product product = (Product)app.getBean("product"); System.out.println(product.getproducetname());
用通俗工场体式格局对Bean进行实例化(建立类的对象)
applicationContext.xml:
!-- 通俗工场获得bean实例 -- bean id="putongFactory" /bean bean id="product1" factory-bean="putongFactory" factory-method="getProduct" /bean
PutongFactory 通俗工场类
public class PutongFactory { //非静态的方式获得另一个类的对象 public Product getProduct(){ return new Product(); }
用组织器体式格局对Bean进行实例化(且这个实例一出生就拥有值)
组织方式分为二种:
一种是无参的,一种是有参的
我们可以用行使组织方式给类中的属性赋值。
applicationContext.xml:
bean id="dog" constructor-arg index="0" value="小白" /constructor-arg /bean !-- Dog dog =new Dog("aaaa") --
constructor-arg index="0" value="小黑" /constructor-arg constructor-arg index="1" value="3" /constructor-arg /bean !-- Dog dog2=new Dog(aaaa,bbb) --
其实就是描述bean的取值局限,和bean的有用时候,是经由过程设置装备摆设文件来设定的
bean id= dog >
/bean
不写scope代表是单例设计模式(单个实例即个对象)
注:
scope= xx 代表感化域
1)scope= singleton 单例的无论拿若干个对象,组织方式只走一次,且对象的内存地址都是沟通的
我此次挪用是这个对象,下次在挪用也是这个对象
2)scope= prototype 每次都建立一个新的对象,组织方式走多次,且对象的内存地址都是不沟通的
每次挪用都是新的对象
bean的初始化时候
其实就是spring建立javabean的时候
1)scope= prototype 建立javabean的时候,每次获取对象实例时,都邑建立.getBean( dog );每次这步都邑建立一个对象
2) scope= singleton 凭据bean标签的属性值来选择建立时候
scope= singleton lazy-init= true 单例的,且延迟建立对象.getBean( dog );这步才建立对象
scope= singleton lazy-init= false 单例的,非延迟建立对象,在类被容器加载时就建立了
注:假如不写lazy-init代表false,被容器加载时就建立。
界说多个设置装备摆设文件当设置装备摆设文件有多个时,我们可以把它们整合在一个设置装备摆设里面
applicationContext.xml:
applicationContext2.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" import resource="/applicationContext2.xml"/ /beans
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/11700.html
cgojavaxml
相关文章
- Spring学习笔记(六)——SpringMVC 概述和入门案例
- Spring学习笔记(七)——SpringMVC常用的注解
- Spring的学习笔记(十六)——SpringDataJpa配置和相关的操作
- Spring的学习笔记(十七)——SpringDataJpa动态查询和复杂的多表操作
- Spring学习笔记(二十六)——springboot集成elasticsearch
- Spring连接池与事务管理 | Spring学习笔记
- 每天20分钟之spring-cloud-gateway基础二
- Spring Bean的生命周期全过程
- batch spring 重复执行_Spring Batch批处理
- 解释spring框架中bean的生命周期_Spring bean的生命周期
- spring boot整合shiro_Spring框架介绍及使用
- Spring JPA 查询的时候提示错 org.hibernate.TransientObjectException
- springboot 集成mybatis-plus_Spring Boot
- Spring学习笔记 - IOC
- Spring:AOP
- 手把手教你,从零开始搭建Spring Cloud Alibaba!这份笔记太牛了
- 使用Redis保存Spring session(基于XML配置文件)详解大数据
- spring的AOP(四)—-Spring AOP 编程(Advisor)详解编程语言
- spring学习笔记(3)——bean配置细节注意详解编程语言
- Spring-data-jpa 学习笔记(一)详解编程语言
- Spring Boot(二十):使用spring-boot-admin对spring-boot服务进行监控详解编程语言
- Spring Boot(十五):spring boot+jpa+thymeleaf增删改查示例详解编程语言
- Spring Boot(五):spring data jpa的使用详解编程语言
- Spring框架致力于搭建基于MSSQL的稳健开发体系(spring mssql)