jar包

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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-3.1.xsd ">
<!-- 定义UserDao对象,并指定id为userDao -->
<!-- <bean id="userDao" class="dao.impl.UserDao" />
定义UserBiz对象,并指定id为userBiz
<bean id="userBiz" class="biz.impl.UserBiz">
为userBiz的dao属性赋值,需要注意的是,这里要调用setDao()方法
<property name="dao">
引用id为userDao的对象为userBiz的dao属性赋值
<ref bean="userDao" />
<bean class="dao.impl.UserDao"></bean>
</property>
<property name="num">
<value>10</value>
</property>
</bean> --> <bean id="userDao" class="com.demo.dao.UserDaoImpl"></bean>
<bean id="userService" class="service.UserServiceImpl">
<property name="userDao">
<ref bean="userDao"/>
</property>
</bean> <!-- <bean id="userDao" class="com.demo.dao.UserDaoImpl"></bean>
<bean id="userService" class="service.UserServiceImpl">
<constructor-arg>
<ref bean ="userDao"/>
</constructor-arg>
</bean> -->
</beans>

  UserDao.java

package com.demo.dao;

import com.demo.entity.User;

public interface UserDao {
public void addUser(User user);
}

  

UserDaoImpl.java

import com.demo.dao.UserDao;
import com.demo.entity.User; public class UserDaoImpl implements UserDao {
private UserDao userDao; public UserDao getUserDao() {
return userDao;
} public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} public void addUser(User user) {
System.out.println("调用数据库"); }
}

  User.java

package com.demo.entity;

public class User {
private int id;
private String username;
private String password;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public User(int id, String username, String password, String email) {
super();
this.id = id;
this.username = username;
this.password = password;
this.email = email;
}
public User() {
super();
// TODO Auto-generated constructor stub
} }

  UserService

package com.demo.service;

import com.demo.entity.User;

public interface UserService  {
public void addUser(User user);
}

  

package com.demo.service.impl;

import com.demo.dao.UserDao;
import com.demo.entity.User;
import com.demo.service.UserService; public class UserServiceImpl implements UserService {
private UserDao userDao; public UserDao getUserDao() {
return userDao;
} public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} public void addUser(User user) {
userDao.addUser(user); } /*
public UserServiceImpl() {
super();
// TODO Auto-generated constructor stub
} public UserServiceImpl(UserDao userDao) {
super();
this.userDao = userDao;
}*/ }

  IocTest.java

package com.demo.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.demo.entity.User;
import com.demo.service.UserService; public class IocTest { /**
* Inverse of control 控制反转 DI 依赖注入
* aop
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService service =(UserService)ctx.getBean("userService"); User user = new User(10,"Tom","123456","504177380@qq.com");
service.addUser(user);
} }

  Inverse of control 控制反转(不需要自己new对象,框架帮你完成,你使用就行了)

   DI 依赖注入(属性或者构造器)

JAVAWEB 一一 Spirng(框架,IOC控制反转,DI依赖注入)的更多相关文章

  1. laravel服务容器(IOC控制反转,DI依赖注入),服务提供者,门脸模式

    laravel的核心思想: 服务容器: 容器:就是装东西的,laravel就是一个个的对象 放入:叫绑定 拿出:解析 使用容器的目的:这里面讲到的是IOC控制反转,主要是靠第三方来处理具体依赖关系的解 ...

  2. Spring 04: IOC控制反转 + DI依赖注入

    Spring中的IOC 一种思想,两种实现方式 IOC (Inversion of Control):控制反转,是一种概念和思想,指由Spring容器完成对象创建和依赖注入 核心业务:(a)对象的创建 ...

  3. Spring专题2: DI,IOC 控制反转和依赖注入

    合集目录 Spring专题2: DI,IOC 控制反转和依赖注入 https://docs.spring.io/spring/docs/2.5.x/reference/aop.html https:/ ...

  4. Java Web实现IOC控制反转之依赖注入

    控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心. 控制反转一般分为两种类型,依赖注入 ...

  5. Spring框架之控制反转和依赖注入

    学Spring框架必须理解控制反转和依赖注入.下面各自举一个例子,来说明控制反转和依赖注入. IOC(控制反转):应用本身创建和维护的依赖对象:现在交由外部容器(Spring)来创建和维护:这个控制权 ...

  6. (转)Ioc控制反转和依赖注入

    转载地址:https://zhuanlan.zhihu.com/p/95869440 控制反转控制反转(Inversion of Control,简称IoC),是面向对象编程中的一种设计思想,其作用是 ...

  7. Spring的IOC控制反转和依赖注入-重点-spring核心之一

    IoC:Inverse of Control(控制反转): 读作"反转控制",更好理解,不是什么技术,而是一种设计思想,好比于MVC.就是将原本在程序中手动创建对象的控制权,交由S ...

  8. spring IOC --- 控制反转(依赖注入)----简单的实例

    IoC(Inversion of Control)控制反转,对象创建责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的 ...

  9. 搞定.NET MVC IOC控制反转,依赖注入

    一直听说IOC,但是一直没接触过,只看例子好像很高达上的样子,今天抽了点时间实现了下,当然也是借助博客园里面很多前辈的文章来搞的!现在做个笔记,防止自己以后忘记! 1.首先创建MVC项目 2.然后新建 ...

  10. Java之控制反转和依赖注入

    1.简介 依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性,下面通过一个例子来引入这一概念. 2.案例 1)一般情况下的类耦合 Main.java public clas ...

随机推荐

  1. CentOS之RPM

    yum工具比RPM工具好用,所以直接介绍yum工具来管理RPM包. yum list |head -n 20 列出所有RPM资源. yum search vim  搜索RPM包vim yum inst ...

  2. 通过mysqlclient操作MySQL数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  3. Django -- settings 详解

    Django settings详解 1.基础 DJANGO_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运 ...

  4. Java - 34 Java 文档注释

    Java 文档注释 Java只是三种注释方式.前两种分别是// 和/* */,第三种被称作说明注释,它以/** 开始,以 */结束. 说明注释允许你在程序中嵌入关于程序的信息.你可以使用javadoc ...

  5. Memory Translation and Segmentation.内存地址转换与分段

    原文标题:Memory Translation and Segmentation 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精 ...

  6. SpringBoot在Kotlin中的实现(一)

    本节记录如何用Kotlin初步搭建一个SpringBoot的环境(使用Gradle自动化构建工具). 1.新建一个Gradle的Kotlin 配置完成后,build.gradle的配置如下: buil ...

  7. python requests 发起http POST 请求

    python requests 发起http POST 请求,带参数,带请求头: #!/usr/bin/env python # -*- coding: utf-8 -*- import reques ...

  8. python - 配置文件

    #配置文件 #.ini .properties .conf 等都是配置文件 #section 片段[]: option 选项 #同一个section下option都是唯一的 #语法 #[secion] ...

  9. 背景图片的移动----background-attach-----background-repeat

    background-repeat:默认是平铺的,也即是还有空间的话将一张接着一张显示 设置为 no-repeat  就最多显示一张 background-attachment:设置是否固定图片,在有 ...

  10. 【每日一学】pandas_透视表函数&交叉表函数

    每日一悟 [分开工作内外8小时] 前一个月,我经常把工作内的问题带到路上.地铁上.睡觉前,甚至是周末. 然而很快发现,我工作外的成就几乎没有,而工作内的进展也并不理想. 仔细想想,工作外是需要学新东西 ...