Spring笔记(一)

                 Spring day_01
Spring是一个开源框架
一、Spring介绍
1.Spring是一站式框架(原因是Spring框架性质是属于容器性质的容器中装什么对象就有什么功能,所以称为一站式)
2.EE开发分成三层
WEB层:Spring MVC
业务层:Bean管理(IOC)
持久层:Spring的JDBC模板ORM模板用于整合其他的持久层框架
Spring框架不仅不排斥其他框架,华能帮其他框架管理对象,AOP 支持,IOC思想,
 
二、Spring框架的搭建
1.导包:选用Spring-framework-4.2.4.RELEASE-dist.zip,然后进行解压,
  基础包:beans,context,core,expression,还有日志包:
2.创建一个对象:
   public class User{
   private String name;
  private Integer id;
  setXXX()和getXXX()方法
}
}

3.Spring的创建规则
Spring的配置文件建议放到src下面,文件名建议为applicationContext.xml
导入约束:window-->preference-->catalog-->spring加压目录下的schema文件-->选择最新版-->

例如:将User对象交给Spring容器管理
即:配置Spring
<beans>
<bean name="user" class="cn.itcast.bean.User">
</bean>
</beans>
4。编写测试类
public class Demo{
public void fun{
//1.创建容器对象
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");

//2.向容器要user 对象
ac.getBean("user");
//3.打印user对象
System.out.println(user);
}}
三、Spring的概念
1.IOC(Inverse Of Control)反转控制,将我们创建对象的方式反转了,以前对象的创建是由开发人员自己维护,包括依赖关系也是自己注入
使用了Spring后对象的创建以及依赖关系可以由Spring完成创建以及注入
反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序
2.DI(Dependency Injection)依赖注入
  实现IOC思想需要DI做支持
   注入方式:
    set方法注入
    构造方法注入
    字段注入
  注入类型:
    值类型注入:即8大基本数据类型
    引用类型注入:将依赖对象注入
3.applicationContext对象和BeanFactory对象
  BeanFactory(已过时):原始接口,实现类的功能较为单一,BeanFactory接口实现类的容器,特点是每次在获得对象时才会创建对象
  ApplicationContext:容器每次启动时就会创建容器中配置的所有对象,并提供更多功能  
 web开发中,使用ApplicationContext,在资源匮乏的环境时可以使用BeanFactory

结论:     

三、Spring配置详解--Beans元素

<!--将User对象交给Spring容器管理
1.Bean元素:使用该元素描述需要Spring容器管理的对象
   name属性:给bei管理的对象起个名字,获得对象时候根据该名称获得对象
   class属性:被管理对象的完整类名
  id属性:与name属性一模一样,名称不可重复,不能使用特殊字符,注意: 尽量使用name属性
   scope属性:signgleton(默认值):单例对象,被标识为
             prototype:多例原型:被标识为多例的对象,每次在获得才会创建
             request:web环境下,对象与request生命周期一致(没用)
             session:web环境下与session生命周期一致(没用)
注意:与struts2框架进行整合时,scope要用prototype值,因为每次请求都会产生一个Action
    init-method:用于配置Spring的初始化
    destroy-method:用于配置Spring在关闭时的销毁


     Spring的分模块配置:即导入其他Spring配置文件
              <import resource="其他Spring配置文件的路径,相对于src下的路径名">
-->
<bean id="" name="" class=""></bean>

2,Spring创建对象的方式:
  1)空参构造方式:
  2)静态工厂方式:BeanFactory(作为了解)
    public class UserFactory{
         public static User createUser(){
              System.out.println("静态工厂创建Bean");
}
}
    此种情况下的配置:
     <beans>
          <bean name="" class="UserFactory对象的全包名" fatory-method="createUser"></bean>




</beans>  

       3)实例化工厂,也就是动态工厂(作为了解)

     

3.Spring 的属性注入;一共有四种方式
  1)set方法注入(重点):
   <!--set注入方式:-->
  <bean name="user" class="cn.itcast.bean.User">
      <!--为user对象中的name属性注入tom作为属性值
      <property name="name" value="tom"></property>
       <property name="age" value="18"><property>
     <!--引用类型用ref,值类型用value-->
       <!--car表示Car类-->
       <property name="car"  ref="car"></property>
   </bean>

 2)构造函数注入
    <!--构造函数注入-->
    <bean name="" class="cn.itcast.bean.User">
        <constructor-arg name="name" value="james" >注入属性要用value</constructor>
        <constructor-arg name="car" ref="car">注入对象要用ref</constructor>



3)p名称空间注入(没用)
  4)spel注入:(没用)


练习:将Spring容器应用到struts-crm项目
管理Service对象以及Dao对象
步骤:   1.导包
         2.将Service对象以及Dao对象配置到
<!--配置Dao-->
<bean name="customerDao" class="cn.itheima.dao.impl.CustomerDaoImpl">
<bean name="linkManDao" class="cn.itheima.dao.impl.LinkManImpl"

<!--配置Service-->
<bean name="customerService" class="cn.itheima.dao.impl.CustomerServiceImpl">


复习;
1.Spring 介绍
   Spring并不局限于某一层
   Spring是对象的容器,帮我们管理项目中的所有对象
2.Spring搭建
  1)导包
  2)准备类
  3)书写配置(建议放到/src/applicationContext.xml)
3.Spring中的概念
 IOC:反转控制,创建对象的方式反转了,从我们自己创建对象,反转给Spring来创建
 DI:依赖注入,将必须的属性注入到对象当中,是实现IOC思想必须条件
   beanFacotory与ApplicationContext
4.配置文件详解
   bean元素
      id属性:给Bean起个名字     不能重复,不能使用特殊字符,早期属性
      name属性:给Bean起个名字   能重复,能使用特殊字符,后来属性
      class属性:类的完整类名
  生命周期属性:  init-method 指初始化方法        destroy-method 指出销毁方法
   作用范围 scope:singleton:(默认值):单例,创建容器时会立即创建单例对象
         prototype:多例,每次获得对象时,才会创建对象,并且每次都会创建新的对象分模块开发
  <import />
5.Bean 的创建方式
   1)空参构造创建
   2)静态工厂
   3)实例工厂
6.注入方式
  1)set方法
  2)*构造方法
  3)p名称空间
  4)spEL表达式
7.复杂属性注入
   Array,List,Map,Properties
8。在web环境中使用Spring容器
   1)导包
   2)在web.xml中配置listener=》ContextLoaderListener
  3)在Action中,使用工具类获得容器
    WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值