您的位置:首页 > 编程语言 > Java开发

Spring学习笔记——基础入门

2017-10-21 14:30 513 查看

1.1基本概念

  


   Spring的两大核心:IOC和aop
    ioc:(inverse of controller控制反转)将创建对象的方式反转,以前的创建对象是由开发人员维护的,例如action中使用service那么就需要在action层中new一个service对象,包括依赖关系也是自己注入的,使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,反转就是反转了对象的创建方式,从我们自己创建反转给spring创建。
    aop:spring能够为容器中管理的对象生成代理对象,以前我们写事务时,如果方法需要用到事务,那么我就就需要为每个方法去执行事务的操作,但是现在我们通过spring,只需要在需要用到的事务方法中去配置时序,spring会通过动态代理去为方法生成带有事务的代理对象
    DI:他不是spring的核心,而是实现ioc的一种方式

1.2 Spring的第一个入门案例

1、导入jar包
    


2、创建一个实体对象User



3、创建一个配置文件
 


4、导入配置文件的约束



5、把实体对象交给spring管理
   


6、测试



bean的生命周期:对象加载的时候创建,容器卸载的时候消亡

1.3对象中属性注入的方法

 set方法注入
     name:对应set后面的部分,首字母转小写
     value:属性的值
    ref:注入的其他的bean类型
<bean name="user" class="com.zhfy.project.pojo.User" >
<constructor-arg name="name" value="张三"></constructor-arg>
<constructor-arg name="age" value="12"></constructor-arg>
<constructor-arg name="car" ref="car"></constructor-arg>
</bean>
<bean name="car" class="com.zhfy.project.pojo.Car">
<constructor-arg name="name" value="大宝"></constructor-arg>
<constructor-arg name="color" value="red"></constructor-arg>
</bean>
 

 构造方法注入
   name:对应构造方法的属性名称,用的最多
   index:对应构造方法的属性出现的索引,从0开始
   type:对应构造方法的属性的数据类型

   ref:注入的是其他bean的引用类型

   value:注入的是基本类型的包装类或者string类型

&
4000
lt;bean name="user" class="com.zhfy.project.pojo.User" >
<constructor-arg name="name" value="张三"></constructor-arg>
<constructor-arg name="age" value="12"></constructor-arg>
<constructor-arg name="car" ref="car"></constructor-arg>
</bean>
<bean name="car" class="com.zhfy.project.pojo.Car">
<constructor-arg name="name" value="大宝"></constructor-arg>
<constructor-arg name="color" value="red"></constructor-arg>
</bean>
  集合类型的注入  

<bean name="arrayBean" class="com.zhfy.project.pojo.ArrayBean">
<!-- list集合注入 -->
<property name="listStr">
<list>
<value>aaa</value>
<value>bbb</value>
</list>
</property>
<!-- set集合注入 -->
<property name="setStr">
<list>
<value>aaa</value>
<value>bbb</value>
</list>
</property>
<!-- 数组注入 -->
<property name="arrStr">
<list>
<value>aaa</value>
<value>bbb</value>
</list>
</property>
<!-- map集合注入 -->
<property name="mapStr">
<map>
<entry key="aaa" value="aaa-bbb"></entry>
</map>
</property>
</bean>

1.4 Spring中获取容器的接口 

  BeanFactory接口:Spring原始接口,针对原始接口的实现类功能比较单一。BeanFactory接口实现类的容器特点是每次在获得对象的时候才会创建

  ApplicationContext接口:每次容器启动时就会创建容器中配置的所有对象,提供更多功能。web开发中使用application完成。在资源匮乏的环境使用beanFactory

     有两个典型的实现类

        ClassPathXmlApplicationContext:从类路径下加载配置文件

        FileSystemXmlApplicationContext:从硬盘绝对路径下加载配置文件

1.5 使用注解开发

配置文件中改为
?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 
<!-- 注解开发 -->
<context:component-scan base-package="com.zhfy.project"></context:component-scan>
</beans>
实体类改为



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: