Spring IOC
来源:互联网 发布:java 复杂网络软件包 编辑:程序博客网 时间:2024/06/06 19:56
DI–Dependency injection依赖注入
控制反转 Inversion of Control
ioc,配置改动,依赖注入,提到容器时基本上都是ioc容器
好莱坞原则:你不用来找我(ioc),我会自己来找你
现在用的都是设值注入(set)
Simple Object
bean就是拥有唯一名称的简单对象
pojo
Plain(简朴)old java Objects 简单的Java对象
即普通Javabean
可以理解为简单的实体(entity)类,顾名思义POJO类的作用是方便程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法,最简单的对象,不能有复杂的东西
vo
value object 值对象
po
persistant obj 持久对象(可理解为eneity)
DTO
DATA TREANSFER OBJECT 数据传输对象
以前被称为值对象(VO,value object),作用仅在于在应用程序的各个子系统间传输数据,在表现层展示等
dao
data access object 数据访问对象(即dao)
Bean 具有唯一id的simple object
由ioc管理,与对象一一对应
由BeanDefinition对象表示,包含:
全限定类名:通常即实际实现类
scope=”prototype”(原型模式
org.springframework.beans.factory.BeanFactory==ioc容器的实际代表者,尽可能晚的初始化BEAN,避免高内存
ApplicationContext
ApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml");//类路径里面找,配置文件可以有多个,甚至是数组{?.xml,!.xml...},有利于团队各写各的配置,一句话加载进来(Student) context.getBean("student");
继承了BeanFactory接口,尽可能早的初始化BEAN,在自身被实例化时一次完成所有BEAN的创建,会检验正确性,不产生运行时BEAN装配错误,beanfactory会
资源获取:
依赖注入的方式:
1.设值注入(属性注入)
public class Student { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; }}
注入null:
<property name="state"> <null/></property>
空字符串:
<value></value>
引用类型:
<property name="state" ref="classes"/>
后面这个是某个bean的id
<bean id="student" class="com.neusoft.entity.Student"><!-- 默认是单例模式,id可以随便叫 bean就是拥有唯一名称的简单对象 若加上scope="prototype"(原型模式,及每次生成的都是新的),则获取的会是不同的对象 --><property name="message" value="hello spring"></property> </bean>
2.构造注入
public Person(String sname, String grade) { this.sname = sname; this.grade = grade; }
<bean id="person" class="com.neusoft.dao.Person"> <constructor-arg index="0"><!-- CA:构造方法注入 index指明注入到第几个参数 一般还是用设值注入 --> <value>jack</value> </constructor-arg> <constructor-arg> <value>二年级</value> </constructor-arg> </bean>
Set集合注入,List的注入即把set改成list
<set><!-- 集合的注入 如果值有重复的话会省略 --> <value>beijing</value> <value>shanghai</value> <ref bean="person"></ref><!-- 非基础属性的注入一定要用ref!!! --> </set>
map注入
<map><!-- map中注入 --> <entry key="beijing" value="北京"></entry> <entry key="gz" value="广州"></entry> </map>
property注入
主要用来读取Java中的*.properties(俗称属性文件,一般用来保存其他软件的配置信息,如log4j的开源项目,jdbc的配置信息.jdbc.properties
private Properties properties = new Properties(); // jdbc.url(键)=jdbc:mysql:MySqlDriver(值) ,properties是hashtable的子类,是键值对的形式
<props> <prop key="jdbc">mysql</prop> <prop key="name">value</prop></props>
属性编辑器
实例化bean
懒加载:
<bean id="lazy" class="Example" lazy.init="true">
默认lazy模式:
<beans default-lazy-init="true">
beanFactory生命周期
- IOC、Spring的IOC
- Spring IoC
- [Spring]IoC
- Spring IOC
- Spring IOC
- spring IOC
- Spring IOC
- Spring IOC
- Spring Ioc
- Spring IoC
- spring ioc
- Spring IOC
- spring IOC
- Spring Ioc
- Spring IoC
- Spring IOC
- Spring IOC
- Spring IoC
- 如何运用krpano生成第一全景项目
- Retrofit(二)、使用Retrofit+OkHttp下载文件并带进度条
- 如何克制处女情结?
- HBuilder 的实际操作
- Hibernate悲观锁/乐观锁
- Spring IOC
- 第一篇:微服务介绍
- javaWeb开发如果处理get 请求跟post 请求的中文乱码
- lua 函数初识(二)
- collection 3 List
- 网络质量预测算法
- HDU5963-朋友
- excel xml 上下标
- 欢迎使用CSDN-markdown编辑器