zoukankan      html  css  js  c++  java
  • JAVAWEB 一一 Spirng(框架,IOC控制反转,DI依赖注入)

    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 依赖注入(属性或者构造器)

  • 相关阅读:
    解密JavaScript闭包
    如何实现JavaScript的Map和Filter函数?
    JavaScript函数重载
    ES6之Spread Operater拷贝对象
    C#中如果用await关键字来await一个为null的Task对象会抛出异常
    为何使用Microsoft SQL Server Management Studio连接Integration Services服务失败
    EF Core中如何正确地设置两张表之间的关联关系
    EF Core中外键关系的DeleteBehavior介绍(转自MSDN)
    SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据
    ASP.NET Core Middleware (转载)
  • 原文地址:https://www.cnblogs.com/PoeticalJustice/p/7816346.html
Copyright © 2011-2022 走看看