IOC
来源:互联网 发布:网站80端口开放攻击 编辑:程序博客网 时间:2024/06/06 09:33
IOC (Inversion of Control
spring:核心的jar包
1.aop 面向切面编程 (不修改源代码实现
2.ioc 控制反转 用spring配置创建类对象
3.一站式框架
.web层springMVC
.service层 spring的ioc
.dao层 spring的jdbcTemplete
ioc的两部分操作
1.ioc的配置文件
2.ioc的注解的方式
IOC
ioc的层原理
.xml的配置文件
.dom4j解析xml
.工厂的设计模式 (解决类和servlet耦合度太高问题
.反射
(类的设计模式 高内聚,低耦合
Example:
public class UserService(){}
public class UserServlet(){
//得到UserService的对象
//原始方法new创建
}
first step:创建xml配置文件
<bean id="user" class="com.User" />
second step:创建工厂类
public void UserFactory(){
public static UserService getUserService(){
//1 dom4j解析xml文件
//得到class的属性值 String valueClass=class的属性值(路径
//2 使用反射创建类对象
Class class=Class.forName(valueClass);
UserService userservice=class.newInstance(); //Class的方法newInstance得到之前路径下的对象
return userservice;
}
}
bean实例化对象
*1.xml直接配置
两个类
1,基础类 写入图需要的信息
2. 使用类 ApplicationContext context= new ClassPathXmlApplicationContext("UserInfor.xml");
UserInfor user =(UserInfor) context.getBean("user");
xml配置 <bean id="user" class="com.UserInfor">
*2.静态工厂模式 (工厂类自动填充
三个类
1.基础类 写入相关的信息
2.工厂类 利用public static ff(){return 基础类对象}
3.显示使用类 applicationContext c=new ClassPathXmlApplicationContext("xml");
对象 =(强制转换) c.getBean("id");
xml配置 <bean id="id" class="工厂类路径" factory-method="工厂类的static函数"></bean>
(多了一个factory-mothod映射入factroy的方法中)
3.对象实例化工厂配置
用不到
bean 常用属性
1.id 根据id配置对象
2.class 创建对象的全路径
3.name 和id属性一致 id不能包含特殊字符 但是name能
4.scope 设置作用的范围
.singleton 单例对象 (默认值
.prototype 多例对象
.request 创建对象把对象放在request域
.session 创建对象把对象放在session域
.globalSession 创建对象放在globalSession域
5.property 对象的属性
.name 属性的名字
.value 属性的数值
.ref 属性为某个类时,引用的是xml中原来类的id
属性注入
1.调用setx(){}方法写入
xml 写入<bean id,class,scope,>
<property name,value></property>
</bean>
2.有参数的默认构造注入 User(){}
3.接口注入 public interface Face{public insert(){}} class implements Face(){}继承接口
**4.注入类对象 (工程常用,双层的注入 一层数据一层对象
三个类
1.存放数据的infor类 大量的set,get
2.存放infor类对象的factroy类 getInfor setInfor
3,调用factory类的地方
xml中内容
<bean id="infor" class="com.Infor"><property name.value>…</property></bean>
<bean id="factory class="com.Factoy"><property name="Infor",ref="infor "></property></bean>
factory的bean中存放的property的name为类对象的名字 ,ref为上Infor的对象的id
5.P空间注入
在 xml中 beans中申请空间 xmlns:p="http://www.springframework.org/schema/p"
<bean id="" class="" p:name=""> 可以直接写入 等同于property属性写入
6.,[],list,map,properties注入
xml写入
String[] <property name="string"> <list><value>1</value><value>nihao</value></list></property>
list<String> <property name="list"> <list><value>1</value><value>nihao</value></list></property>
map<string,Integer> <property name="map"><map><entry key="" value=""><entry> </map></property>
properties <property name="property"><props><prop key="">qwe<prop></props></property>
map和properties实际用法类似 ,只是xml写法不同
spring 的bean管理
注释创建对象
1.添加约束 context
2.xml添加包扫描 <context:component-scan base-package="com"> </context:component-scan>
3,再累前面添加注释生命 @Component(value="userDemo") userDemo就是对象的名称
附加注解:@Scope(value="")单对象 @Scope(value="prototype") 多对象时用
4.其他类中调用 ApplicationContext context=new ClassPathXmlApplicationContext("UserInfor.xml");
context.getBean()获取
1.注解类:
1.@component
2.@Controller web层
3.@Service 业务层
4.@Respository 持久层
当前的四个注解作用一样,都是创建对象。@Scope(value="prototype")创建的个数约束
2.注解属性
.@AutoWired
使用情景 一个类中 引用其他类
public class AA{
@AutoWired
priate BB bb;
//这样会在扫描的包中自动加载BB类,然后声明为对象
.@Resource(name="bb") 指定的类对象名称引入
//如果对象还没有创建 就会报错
**实际应用的混合使用
1.创建对象一般用配置文件方式xml <bean></bean>
2.注入属性一般用注解的方式写入 @resource(name="")
spring:核心的jar包
1.aop 面向切面编程 (不修改源代码实现
2.ioc 控制反转 用spring配置创建类对象
3.一站式框架
.web层springMVC
.service层 spring的ioc
.dao层 spring的jdbcTemplete
ioc的两部分操作
1.ioc的配置文件
2.ioc的注解的方式
IOC
ioc的层原理
.xml的配置文件
.dom4j解析xml
.工厂的设计模式 (解决类和servlet耦合度太高问题
.反射
(类的设计模式 高内聚,低耦合
Example:
public class UserService(){}
public class UserServlet(){
//得到UserService的对象
//原始方法new创建
}
first step:创建xml配置文件
<bean id="user" class="com.User" />
second step:创建工厂类
public void UserFactory(){
public static UserService getUserService(){
//1 dom4j解析xml文件
//得到class的属性值 String valueClass=class的属性值(路径
//2 使用反射创建类对象
Class class=Class.forName(valueClass);
UserService userservice=class.newInstance(); //Class的方法newInstance得到之前路径下的对象
return userservice;
}
}
bean实例化对象
*1.xml直接配置
两个类
1,基础类 写入图需要的信息
2. 使用类 ApplicationContext context= new ClassPathXmlApplicationContext("UserInfor.xml");
UserInfor user =(UserInfor) context.getBean("user");
xml配置 <bean id="user" class="com.UserInfor">
*2.静态工厂模式 (工厂类自动填充
三个类
1.基础类 写入相关的信息
2.工厂类 利用public static ff(){return 基础类对象}
3.显示使用类 applicationContext c=new ClassPathXmlApplicationContext("xml");
对象 =(强制转换) c.getBean("id");
xml配置 <bean id="id" class="工厂类路径" factory-method="工厂类的static函数"></bean>
(多了一个factory-mothod映射入factroy的方法中)
3.对象实例化工厂配置
用不到
bean 常用属性
1.id 根据id配置对象
2.class 创建对象的全路径
3.name 和id属性一致 id不能包含特殊字符 但是name能
4.scope 设置作用的范围
.singleton 单例对象 (默认值
.prototype 多例对象
.request 创建对象把对象放在request域
.session 创建对象把对象放在session域
.globalSession 创建对象放在globalSession域
5.property 对象的属性
.name 属性的名字
.value 属性的数值
.ref 属性为某个类时,引用的是xml中原来类的id
属性注入
1.调用setx(){}方法写入
xml 写入<bean id,class,scope,>
<property name,value></property>
</bean>
2.有参数的默认构造注入 User(){}
3.接口注入 public interface Face{public insert(){}} class implements Face(){}继承接口
**4.注入类对象 (工程常用,双层的注入 一层数据一层对象
三个类
1.存放数据的infor类 大量的set,get
2.存放infor类对象的factroy类 getInfor setInfor
3,调用factory类的地方
xml中内容
<bean id="infor" class="com.Infor"><property name.value>…</property></bean>
<bean id="factory class="com.Factoy"><property name="Infor",ref="infor "></property></bean>
factory的bean中存放的property的name为类对象的名字 ,ref为上Infor的对象的id
5.P空间注入
在 xml中 beans中申请空间 xmlns:p="http://www.springframework.org/schema/p"
<bean id="" class="" p:name=""> 可以直接写入 等同于property属性写入
6.,[],list,map,properties注入
xml写入
String[] <property name="string"> <list><value>1</value><value>nihao</value></list></property>
list<String> <property name="list"> <list><value>1</value><value>nihao</value></list></property>
map<string,Integer> <property name="map"><map><entry key="" value=""><entry> </map></property>
properties <property name="property"><props><prop key="">qwe<prop></props></property>
map和properties实际用法类似 ,只是xml写法不同
spring 的bean管理
注释创建对象
1.添加约束 context
2.xml添加包扫描 <context:component-scan base-package="com"> </context:component-scan>
3,再累前面添加注释生命 @Component(value="userDemo") userDemo就是对象的名称
附加注解:@Scope(value="")单对象 @Scope(value="prototype") 多对象时用
4.其他类中调用 ApplicationContext context=new ClassPathXmlApplicationContext("UserInfor.xml");
context.getBean()获取
1.注解类:
1.@component
2.@Controller web层
3.@Service 业务层
4.@Respository 持久层
当前的四个注解作用一样,都是创建对象。@Scope(value="prototype")创建的个数约束
2.注解属性
.@AutoWired
使用情景 一个类中 引用其他类
public class AA{
@AutoWired
priate BB bb;
//这样会在扫描的包中自动加载BB类,然后声明为对象
.@Resource(name="bb") 指定的类对象名称引入
//如果对象还没有创建 就会报错
**实际应用的混合使用
1.创建对象一般用配置文件方式xml <bean></bean>
2.注入属性一般用注解的方式写入 @resource(name="")
阅读全文
0 0