DI注入详解

1.什么是DI
Dependence Injection 依赖注入(DI是IOC的一种具体实现):解决主键之间的装配问题
2.Spring中(DI)依赖注入的实现方式
 2.1 setter 注入
基于set 方法的注入--
<bean id="cardb" class="com.xdl.demo.Card" >
<property name="suits" value="红桃"></property><!-- name:属性名,value:为属性赋值 -->
<property name="point" value="K"></property>
</bean>
property:属性,name:属性名,value:为属性赋值  ref:引用
<property name="card" ref="card"></property></bean>
 2.2 构造器注入
    基于构造方法的注入
    <bean id="player" class="com.xdl.demo.Player">
<constructor-arg index="0" value="小马哥"></constructor-arg> <!-- 形参,index下标 -->
<constructor-arg index="1" value="18"></constructor-arg>
<constructor-arg index="2" ref="cardc"></constructor-arg><!-- ref:对象 -->
</bean>
 2.3 自动化注入
  在bean标记中 使用autowite 属性进行指定 取只有
  byName 按照Spring 容器中组件的id 进行自动查找 看是否和属性名相同
  byType 根据属性的类型 在容器
  constructor 类似于byType 但类型冲突时会启用byName(看的是形参名)
3. bean 基本参数注入
   3.1字符串 整数 浮点数
   <bean id="card" class="com.xdl.demo.Card">
<property name="suits">
<value>黑桃</value>
</property>
<property name="point"  ><null/></property>
</bean>
练习:
在Spring容器中创建一个连接池对象 通过Spring 容器获取连接池对象
然后通过连接池对象 获取数据库连接
 3.2 成员
 
 3.3 注入集合
  <list/>(List)、<set/>(Set)、<map/>(Map)、<props/>(Properties)
 
 eg:
  <bean id="msgBean" class="com.xdl.bean.MagBean">
<property name="title" value="回家的愿望"></property>
<property name="length" value="1001"></property>
<property name="friends">
<list>
<value>张三</value>
<value>李四</value>
<value>王五</value>
<value>尼玛</value>
</list><!-- 自动将list值给friends -->
</property>
</bean>


<property name="phones">
<map>
<entry key="18121191101" value="小李"></entry>
<entry key="18121111111" value="小张"></entry>
<entry key="18121191103" value="小卫"></entry>
<entry key="18121191104" value="小丽"></entry>
</map>
</property>
<property name="phones2">
<props>
<prop key="15811999988" >张飞</prop>
<prop key="15811999987" >白起</prop>
<prop key="15811999986" >韩信</prop>
<prop key="15811999985" >李靖</prop>
<prop key="15811999984" >粟裕</prop>
</props>
</property>
如果另一个对象也用到相同的这个集合,则需要单独定义,用到
<util:list(set/map/properties) >

</util>

5.Spring 的EL表达式
把原来EL表达式中的$变成# 取得式=是Spring容器中对象的值


6.组件扫描
  Spring提供了一套 可以把组件在容器中创建出来 以及组装组建的标注(注解)
  这种技术可以大大简化xml的配置
6.2 组件扫描的使用步骤
1.建立工程拷贝配置文件spring 容器对应的配置文件和导入jar包(IOC和AOP)
2.在Spring容器中对用的配置文件中开启组件扫描
<context:component-scan   base-package="包" />
3.在建立java类时 需要在java类上打对应的标注
@Repository 持久化层组件注解(DAO层)
@Service    业务层组件注解(调用DAO)
@Controller 控制层组件注解(sevlet)
@Component  通用层注解(除以上3中其他组件注解)
4.创建Spring 容器 从容器中获取对应的组件

1.EL表达式作用

2.JSP selvlet 4大对象?

 

1)servlet的四大作用域对象:

page(pageContext)  :当前jsp页面

request(HttpServletRequest)

session(HttpSession):

application(ServletContext):tomcat启动时创建,tomcat关闭时销毁,整个web的生命周期只有一个

括号内为其对应的类

2)

jsp的九大内置对象:pageContext(pageContext)、request(HttpServletRequest)、session(HttpSession)、application(ServletContext)、response(HttpResponse)、config(ServletConfig)、out(JspWriter)、page(Object)、exception(Throwable)

括号内为其对应的类,这些对象都是存在于jsp中的,可以直接使用

 

jsp的四大作用域对象:

pageContext(pageContext)、request(HttpServletRequest)、session(HttpSession)、application(ServletContext)

括号内为其对应的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值