今日分享开始啦,请大家多多指教~
IOC创建对象的两种方式
1.无参构造方式
sprirng使用无参构造的方式新建对象,然后使用set方法注入属性,表现为在bean.xml的property来对属性进行赋值。
如果实体类中没有set方法,property来对属性进行赋值。
2有参构造方式
在实体类增加有参构造方法,(无参构造是默认含有的。)
修改bean.xml方法
回顾一下java的知识,在创建java对象时,无参构造函数是默认含有的,但是有参构造函数写了之后,默认的无参构造就会失效,这个时候要使用无参构造需要手动写一个无参构造函数。
spring配置
1别名配置
spring别名的配置规则
!--设置别名:在获取Bean的时候可以使用别名获取--
aliasname=helloalias=helloOne/
和mybatis的有些类似,在mybatis中是这样使用的。
配置了别名之后,在java代码中就可以通过别名来获取对象实例了。
2bean配置
这一个配置文件用java代码来解释就是
Hellohello=newHello();
hello.setName(Spring);
3多团队协作import
如果在团队开发中要使用别人写的xml文件,可以使用import的方式来实现,这样,就可以在自己的bean中使用别人bean的属性。
importresource={path}/beans.xml/
依赖注入
依赖注入作为Spring实现IOC的方式,允许大家使用多种方式来进行bean属性值的注入。
1有参构造器注入
在4当中已经实现了构造器注入
2set注入
要求被注入的属性,必须有set方法,set方法的方法名由set+属性首字母大写,如果属性是boolean类型,没有set方法,是is.
创建实体类用于测试
Student.java
因为学生对象中含有对象Address
Address.java
常量注入(常用的数据类型,如inter,string,double等)
对象注入
在这里ref是引用。
数组注入
list注入
map注入
set注入
property
null注入
结果
3使用命名空间注入
P命名空间注入:需要在头文件中假如约束文件
c命名空间注入:需要在头文件中假如约束文件
4Bean的作用域
Singleton单例
SpringIoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。
beanid=ServiceImplclass=cn.csdn.service.ServiceImplscope=singleton
Prototype
当一个bean的作用域为Prototype,表示一个bean定义对应多个对象实例。Prototype作用域的bean会导致在每次对该bean请求时都会创建一个新的bean实例。
beanid=accountclass=