ssh之Spring(一)

    今天总结的是Sping ,首选什么是Spring?Spring能做什么?Spring是一个轻量级的框架,可以用于一站式开发,因为Spring 可以组合很多的框架,hibernate,Struts2,mybites等等

    Spring用到的资源很少,而且最小的完整的spring大小不到2M,Spring 的核心是IOC(控制反转)和DI(依赖注入),个人使用Spring的最大感受就是对于使用bean的一系列优化和解耦

    那么什么是IOC和AOP?DI?

    控制反转:表示把对象(bean)实例化的权利交给Spring去做

    面向切面:降低各层之间的耦合度,加入一个代理(proxy),尽量不改原来的代码

    依赖注入:   如果一个对象依赖于另一个对象,那么将这个对象依赖的对象参数传递进来

    bean配置时,id与name属性的区别?

    id表示唯一的不可重复,name的属性可以重复,但是后边相同的name会覆盖前边的name

    构造Bean对象,可以有哪些方法?

    1.默认的空参构造    2.静态工厂的方式      3.实例工厂方式

    <bean id="book" class="it.c.Book">
<property name="name" value="精通spring"></property>
<property name="author" value="老徐"></property>
</bean> 
<!--  静态工厂的方法 -->
<bean id="book" class="it.c.ConstruterObject" factory-method="getBook"></bean> 

<!-- 实例工厂 -->
<bean id="construterObject" class="it.c.ConstruterObject"></bean>

<bean id="book" factory-bean="construterObject" factory-method="getBook"></bean>

    Bean的作用域有哪些?

        个人目前只记得两个比较重要的 singleton 单例的 ,prototype多例的 还有request,session,globalsession

    Bean的生命周期?

    1.    解析application.xml 文件 实例化bean 默认是单例的
    2.    根据<propety>节点 依赖注入传入参数
    3.    如果bean实现了BeanNameAware接口,spring将调用setBeanName(bean的id)将id传入
    4.    如果bean实现了BeanFactoryAware接口,spring将调用setBeanFactory方法,将工厂实例传入
    5·    如果bean实现了ApplicationContextAware()接口,spring将调用setApplicationContext()方法将上下文传入的引用
    6.    如果bean实现了BeanPostProcessor接口,spring将调用它们的postProcessBeforeInitialization接口方法
    7.    如果bean实现了InitializingBean接口,spring将调用它们的afterPropertiesSet接口方法
    8.    如果bean实现了BeanPostProcessor接口,spring将调用它们的postProcessAfterInitialization接口方法
    9.    此时bean已经准备就绪,可以被应用程序使用,他们存在应用上下文中,直到被销毁
    10.  若bean实现了DisposableBean接口,spring将调用它的distroy()接口方法

    Bean中属性注入的方式有哪些?

        手动:1.set

           2. 有参数构造

        <!-- 6.1构造方法注入 -->

<bean id="injectConstructorUser" class="cn.itcast.e_propinject.constructor.User">
<constructor-arg index="0"  value="1111"></constructor-arg>
<constructor-arg index="1"  value="123456"></constructor-arg>
</bean>


            3. p处理

      自动:注解方式


       实现List,Set,Map,Properties集合注入?

<bean id="list" class="it.cast.colltction.AllCollections">
<property name="list">
<list>
<value>xpy</value>
<value>kop</value>
<value>opr</value>
<ref bean="book"></ref>
</list>
</property>
<property name="set">
<set>
<value>人</value>
<value>情</value>
<value>人</value>
</set>
</property>
<property name="map"> 
<map>
<entry key="1" value="可以啊小map"></entry>
<entry key="2" value="tom猫我们走"></entry>
<entry key="3" value-ref="book"></entry>
</map>
</property>
<property name="pro">
<props>
<prop key="5">12</prop>
<prop key="6">45</prop>
</props>
</property>
</bean>

<import resource="applicationContext-book.xml"/>

    常用注解有哪些?
@Component  描述Spring框架中Bean 
@Repository 用于对DAO实现类进行标注
@Service 用于对Service实现类进行标注
@Controller 用于对Controller实现类进行标注
@Autowired的required属性,设置一定要找到匹配的Bean
@Qualifier指定注入Bean的名称
@Resource标准注解


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值