spring---one

来源:互联网 发布:幸运双色球过滤软件 编辑:程序博客网 时间:2024/06/02 04:29

soring的核心是ioc和aop

为简化企业级用用开发而生
spring:提供的是一站式服务:
提供一站式服务的同时也提供了扩展接口 可以让别个框架替换自身
整合型框架
作用:1 整合
2:提供一个容器的概念:里面装开发中的javabean,要用就到容器里面取,这样的思想叫做ioc 降低三层耦合度
3:得到对象不需要new 告诉容器需要对象 容器会自动创建 在得到对象 降低耦合 
4:面向接口 面向切面(将业务逻辑和系统服务分开)
注入方式:设置注入  构造注入
高类聚:一个类的业务劲量单一
低耦合:降低类鱼类的耦合


具体描述:

1 轻量级 非侵入性  指的是需要用spring时不需要去实现它的接口  和继承父类 直接用就可以

2 依赖注入

3 面向切面

使用xml和java注解实现

5 一站式的框架 在ioc和aop的基础上整合 几乎用了spring可以将javaee的特点都体现出来


ioc 反转资源获取方向-----一般的获取资源 是组键向容器发送请求的到资源  反转则是容器主动将资源推送给组键 拿来用就可以了

列如:你需要食品 传统是向政府要;反转获取就是 你放个框在院子 你要食品  政府自动给你放框里 大概意思

spring中容器将资源推送给自己管理的组件,组件以合理的方式来获取资源进行使用就可以了,这被称为查找的被动形式


在操作前先写好spring的配置文件--------applicationContext.xml

写好一个实体bean 属性 构造器 。。。。。。。。写好

平时创建一个对象时 我们需要new一个 实列

以下是spring的操作

<!-- 将简单对象声明在容器中  容器启动时则创建
通过反射   class="com.spring.beans.UserInfot"
类的全类名 得到类模板 下面就可以设置属性了
-->
<bean id="user" class="com.spring.beans.UserInfot">
<property name="userName" value="张三"></property>
<property name="password" value="123"></property>
</bean>

容器中bean的id是唯一标示

-----------------------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 将简单对象声明在容器中  容器启动时则创建-->
<bean id="user" class="com.spring.beans.UserInfot">
<property name="userName" value="张三"></property>
<property name="password" value="123"></property>
</bean>

</beans>

测试:

public void main{

public void testUser(){

//创建ioc容器
//将appliction的文件中的配置的bean组件,纳入到上下文中去(启动)
//ClassPathXmlApplicationContext代表ioc容器
ClassPathXmlApplicationContext ac =
new ClassPathXmlApplicationContext("applicationContext.xml");
//得到容器中的对象  创建了java对象
UserInfot user=(UserInfot)ac.getBean("user");

//就可以调用这个对象的房发了 (具体参照day29spring)
System.out.println(user);

}

}

这样就创建好了一个对象 在企业级开发中 劲量少用new ;以保证开发的高类聚 和 低耦合 ,所有的软件开发都以这位准则

注意:spring在读取bean配置 创建bean实列之前,必须先对容器进行实列化,只有在容器实力化后,才可以获取ioc容器的bean实列并使用

spring'提供了两种配置模式:beanfactory        和  ApplicationContext

ApplicationContext是前者的子类 而且具有更高特性

前者面向spring自身 后者面向应用spring开发 几乎都用 后者而非前者(底层)

ClassPathXmlApplicationContext是ApplicationContext的接口实现类 从类路径加载

用它的getbean(id)读取

注入方式:属性注入(set方法常用)  构造器注入

<!-- 构造注入 -->
<bean id="serviceImpl" class="com.spring.service.impl.IUserServiceImpl">
<constructor-arg index="0" ref="IUserImpl"></constructor-arg>
</bean>

<!-- 设置属性注入 
<bean id="userService" class="com.spring.service.impl.IUserServiceImpl">
<property name="userDao" ref="IUser"></property>
</bean>


其中 容器中bean配置的 : bean与bean之间的关系 用 ref 连接  相互引用 通过一个类另一个类设成自己的引用属性 在容器里面进行 连接

其中配置细节:index  参数位置从0开始  


--------------------------------------------------------------------------

自动装配 bytype   byname     根据名字或者类型 自动装配 不够灵活 

0 0
原创粉丝点击