栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring5框架学习1(ioc容器)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring5框架学习1(ioc容器)

小编主要介绍的是ioc中的两大重要作用:创建对象和DI(属性注入)
Spring框架的底层原理  :xml解析技术,工厂模式,反射 

(小编就直接使用现成的图做一下描述)

对象的创建(基于xml文件)




    

    
        
        
        
      
    
    
    

  
    

 class类

package com.java.sping5;
//尝试用sping来创建对象并调用方法
public class User {
    public void  add(){
        System.out.println("add a user");
    }
}

package com.java.sping5;

public class Oder {
    private String oname;
    private String oadress;

    public Oder(String oname, String oadress) {
        this.oname = oname;
        this.oadress = oadress;
    }

    @Override
    public String toString() {
        return "Oder{" +
                "oname='" + oname + ''' +
                ", oadress='" + oadress + ''' +
                '}';
    }
    public    void output (){
        System.out.println(oname);
        System.out.println(oadress);
    }
}

package com.java.sping5;

public class Book {
    private  String bname;
    private  String banthor;
    public void setBname(String bname) {
        this.bname = bname;
    }
    public void setBanthor(String banthor) {
        this.banthor = banthor;
    }

    @Override
    public String toString() {
        return "Book{" +
                "bname='" + bname + ''' +
                ", banthor='" + banthor + ''' +
                '}';
    }
}

属性注入




      
         
         
      
    



   
    
    
        
    
      
          
              
          
      
    


    
 
    
     
         
             张三
             李四
             王伟
         
     
     
     
         
             张三
             李四
             王伟
         
     
     
     
         
             
             
         
     
     
     
         
             Mysql
             Rides
         
     
     
       
         
             
             
         
     
 
    
        
    
    
        
    

对象创建基于(注解)

首先是在xml文件中开启文件扫描



接口和实现类

package com.java.spring.Dao;
public interface UserDao {
    public void add();
}

//实现类
package com.java.spring.Dao;

import org.springframework.stereotype.Repository;

@Repository(value = "userdaoimpl")
public class UserDaoimpl implements UserDao{
    @Override
    public void add() {
        System.out.println("userdao add");
    }
}

注解实现对象创建和测试

package com.java.spring;
import com.java.spring.Dao.UserDao;
import com.java.spring.Dao.UserDaoimpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.expression.evaluationException;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
//注解来创建对象 如果不添加(value="xxx") 默认是类的首字符小写名称
//@Component(value ="user") @Service
@Controller
public class User {
    @Autowired  // 根据类型进行注入  注解后不需set方法
    @Qualifier(value = "userdaoimpl") //当一个接口的实现类较多的时候,就可以根据名称找的需要的类
    private UserDao userDao;
    @Value("张三")
    private  String uname;
    public void add(){
        System.out.println(uname);
        userDao.add();
    }
}
package com.java.spring;

import com.java.comfriger.Springcomfeiger;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Springtest {

    @Test
    public void test1(){
        ApplicationContext context=
                new ClassPathXmlApplicationContext("Bean4.xml");
        User user = context.getBean("user", User.class);
        System.out.println(user);
        user.add();
    }
    @Test
    public void test2(){
        ApplicationContext context=
                new AnnotationConfigApplicationContext(Springcomfeiger.class);
        User user = context.getBean("user", User.class);
        System.out.println(user);
        user.add();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749521.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号