spring整理1

1.  Spring 
Struts2作用在前端接受请求等,hibernate作用在后端,连接数据库   Spring作用于整体,在它的基础上系统的框架结构变得很灵活,用于整合hibernate  和spring框架,可以降低组件之间的关系,提高程序的灵活性和可扩展性。 主要依靠spring容器来实现,有容器管理对象。具有IOC和AOP特性。   IOC依赖注入,AOP面向切面编程。 有了IOC对象不再由程序员自己创建对象,例:User u=new User();   而是将创建对象的任务交给了Spring容器。   AOP将一些通用的功能作用到指定的对象和过程中。任意一个处于spring容器中 的对象,都可以充当拦截器使用。比Struts2灵活的多。 
 Spring贯穿在整个应用之中,负责创建Action实例,创建Service实例,创建 DAO实例,并将被引用的实例注入到需要该实例的实例中。 
2. 容器对对象的管理 
使用最核心的考开发包:spring.jar、commons-logging.jar 定义applicatiionContext.xml,其中schema的版本要和导入jar报的版本一致。 Schema是一种与DTD类似,限制xml格式的文件。 
1)  bean元素的定义 
<bean id=”标示” class=”包名.类名”>  也可以使用name=”标示” ,与 id的区别:id属性要求更加严格,具有唯一性, 不能使用特殊字符。 
2)id属性:属性值要求更严格,具有唯一性,不能使用/,.等特殊字符 
3)lazy-init属性:默认bean是在容器对象创建时创建对象, 可以使用该属性指定在调用ctx.getBean("标识名")方法时创建. 
4)scope属性:用于指定bean对象创建模式.默认是singleton,单例模式. 可以指定为prototype,即每次调用getBean()都创建一个新对象. 
5)init-method属性:用于指定初始化方法.相对应的有destory-method 
3.依赖注入 DI 
   1)setter方法注入 
      a.基本类型注入 
         name的值username于对应的User类中的属性相同。 
         <bean name=”user” class=”com.cn.User”> 
          <property name=”username” > 
            <value>张三</value> 
</property> 
</bean> 
      b.集合类型注入 
          <property name="loves"> 
<list> 
 <value>芙蓉</value> 
<value>菊花</value> 
<value>小月月</value> 
</list> 
</property> 

 c.对象类型注入 
        <bean name="jdbcUserDao" class="com.cn.dao.JdbcUserDAO"></bean> 
        <bean name="userService2" 
class="com.cn.service.UserServiceBean"> 
<!-- 将jdbcUserDao注入给UserService组件的userDao属性 --> 
<property name="userDao" ref= "jdbcUserDao"  /> 
</bean> 
  2)构造方法注入 
     <constructor-arg index="0" value="张三"/> 
<constructor-arg index="1" ref="hibernateUserDao"/> 
3)自动装配:spring容器可以根据指定规则,建立组件之间的调用关系. 可以为<bean>元素添加autowire属性指定自动装配规则. 
byName:注入方bean的id值与被注入方的属性名相同.借助setter方法 byType:注入方bean的类型与被注入方的属性类型相同.借助 setter方法 
     <!-- 自动装配示例 --> 
 <bean id="hibernateUserDao" class="com.cn.dao.HibernateUserDAO" /> 
 <bean id="userService" class="com.cn.service.UserServiceBean" 
  autowire="byType"> 
 </bean> 
constructor:与byType的方式类似,不同之处在于它应用于构造器参数 
4.IOC概念 
Inversion of Control:控制反转或者反向控制.   所谓的控制权是指对象的创建,初始化,调用关系的控制. 主要是指由Spring容器负责创建组件对象,指定对象之间的调用(依赖)关系.  IOC通过DI实现.有了 Spring之后,控制权由使用者转移到了Spring容器. 
5.基于注解方式配置 
1)组件自动扫描功能 
     可以按指定的包路径,扫描带有以下注解的组件,纳入容器管理. 等价于<bean>元素的定义 
@Controller : 控制层组件使用.例如 Action 
@Service : 业务层组件使用.例如Service 
@Repository : 数据访问层组件使用.例如 DAO 
 @Component : 任何组件都可以用 
注意:需要在xml配置文件中开启自动扫描配置. 
 <context:component-scan base-package=""/> 
2)指定注入关系(以下注解可以用在属性定义前,setter方法前) 
@Autowired : 默认按类型装配.如果需要按名称装配,使用格式如下 
@Autowired 
@Qualifier("mainCatalog") 
private MovieCatalog movieCatalog; 
 
@Resource :默认按名称装配.找不到再按类型.使用格式如下 
@Resource(name="myMovieFinder") 
public void setMovieFinder(MovieFinder movieFinder) { 
this.movieFinder = movieFinder; 
 } 
 
3)@Scope,@PostConstruct注解等价于<bean>元素的scope,init-method属性 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值