Spring里面的二大技术之IOC

Spring是桥梁,用于联系struts和hibernate
Ioc:控制反转 inverse of context 作用:依赖注入
之前:创建对象是通过new出来的,就需要知道对象的所有属性和方法
现在:创建对象是交给Spring里面创建
就是将创建对象的权力反转给了spring,让spring工厂创建对象

第一步:导spring的核心(pom.xml)

<!-- spring的核心依赖 -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-context</artifactId>
     <version>4.3.10.RELEASE</version>
 </dependency>

在新建XML时要下载spring的插件
第二步:现在新建一个spring的工厂(xml文件)
右键包名------点击other----搜索spring-----新建configuration File结尾的------名字自定义(我的名字是applicationContext.xml
在这里插入图片描述
新建后效果
在这里插入图片描述
第三步:再新建实体类,(我新建的是一对多的关系 City类和Province类)
第四步:把创建对象的权力交给spring工厂
注入方式:第一种:属性注入:通过给属性赋值
在applicationContext.xml中

<!-- 属性注入 
  id:给实体类取的名字
  class:实体类的包名加类名
 -->
 <bean id="c" class="com.ywy.entity.City">
 <!--  name:是实体类对应的名称  value:值 -->
  <property name="cid" value="1"></property>
  <property name="cname" value="长沙"></property>
 </bean> 

测试类获取

//获取spring对象(通过xml文件创建xml工厂)
BeanFactory factory=new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
//到工厂里面拿对象  c就是id名
City city=(City) factory.getBean("c");
System.out.println(city.getCname());

第二种注入:构造注入:通过构造方法(实体类就需要有对应的构造方法)

<!-- 构造注入
  一定要有对应的构造方法
  -->
 <bean id="ci" class="com.ywy.entity.City">
 <!-- 构造方法里括号对应的属性-->
  <property name="cname" value="长沙"></property>
 </bean>

获取是一样的
第三种注入:依赖注入:通过引入依赖,是IOC的核心

<!-- 依赖注入 
  给对象里面的对象赋值
 -->
 <bean id="city" class="com.ywy.entity.City">
 <!-- ref:依赖下面的pro对象 -->
 <!-- 城市里面的省份对象就依赖pro-->
  <property name="province" ref="pro"></property>
 </bean>
 
 <!-- 创建一个省份对象-->
 <bean id="pro" class="com.ywy.entity.Province">
  <property name="pname"  value="湖南省"></property>
 </bean>

获取方式也是一样的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值