1、IOC是什么?
   IOC (inverse of controll)控制反转:所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml)
2、DI是什么?
   Di(dependency injection)依赖注入:实际上DI和IOC是同一个概念,spring设计者认为DI更能准确表示spring的核心技术

笔者认为:学习框架最重要的就是学习各种配置

3、传统的方法和使用spring的方法区别

使用spring,没有new对象,我们把new对象的任务交给spring框架

4、第二个spring项目

结构层

源码:UserService.java

package UserService;
import ByService.ByService;
public class UserService {
private String name;
private ByService byservice; public void setByservice(ByService byservice) {
this.byservice = byservice;
} public void setName(String name) {
this.name = name;
} public void say() {
System.out.println("你好:" + name);
byservice.sayBye();
}
}

源码:ByService.java

package ByService;
public class ByService {
private String name; public void setName(String name) {
this.name = name;
}
public void sayBye()
{
System.out.println("Bye"+name);
}
}

源码:applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="UserService" class="UserService.UserService">
<property name="name" value="小明" />
<property name="byservice" ref="ByService" />
</bean>
<bean id="ByService" class="ByService.ByService">
<property name="name" value="小紅"/>
</bean>
</beans>

源码:Test.java

package Test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import UserService.UserService; public class Test { public static void main(String[] args) {
// TODO Auto-generated method stub
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService u=(UserService)context.getBean("UserService");
u.say(); } }

5、项目总结:
   spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们只要getBean(id)即可。

最新文章

  1. Zepto源码
  2. Ubuntu 14.04 AMD 64位 下 Android Studio 的安装
  3. [RGEOS]支持栅格数据读取和显示
  4. 打开了chrome审查元素 发现报错 Uncaught SyntaxError: Unexpected token )
  5. Android核心分析之二十七Android GDI 之SurfaceFlinger之动态结构示
  6. Ubuntu常用终端快捷键
  7. DESTOON系统文章模块默认设置第一张图片为标题图的方法
  8. IOS百度地图语音导航
  9. HTML&amp;lt;!DOCTYPE&amp;gt; 宣示
  10. Android 常规任务的高度【schedule】与【scheduleAtFixedRate】差额
  11. Azkaban使用安装文档
  12. Vmware Vtop基本使用
  13. mac操作
  14. pyorient
  15. 阿里云上部署了zabbix,突然无法收到报警邮件的解决办法
  16. WdColor&#160;枚举&#160;(Word)
  17. android Handlerr.removeCallbacksAndMessages(null)的妙用
  18. 一键LNMP文件
  19. Python学习之路5 - 函数
  20. 【Luogu】P2465山贼集团(树形状压DP)

热门文章

  1. 【HDOJ5447】Good Numbers(数论)
  2. [LOJ3119][CTS2019|CTSC2019]随机立方体:组合数学+二项式反演
  3. python学习之路(12)
  4. Atcoder ARC101 E 树dp
  5. C++入门经典-例5.14-丢失的内存,关于内存泄漏
  6. C++入门经典-例3.25-使用循环输出闰年
  7. 2018092609-2 选题 Scrum立会报告+燃尽图 03
  8. Hive SQL 语法学习与实践
  9. spark streaming 1: SparkContex
  10. 一、基础篇--1.1Java基础-hashCode和equals方法的区别和联系