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

Spring5入门-----IOC 操作 Bean 管理(1)----Spring5的@Test注解引入

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

Spring5入门-----IOC 操作 Bean 管理(1)----Spring5的@Test注解引入

Spring5笔记-----IOC 操作 Bean 管理
  • IOC 操作 Bean 管理
    • IOC 操作 Bean 管理(xml 注入其他类型属性)
    • IOC 操作 Bean 管理(xml 注入集合属性)
    • IOC 操作 Bean 管理(FactoryBean)
    • Spring5的@Test注解引入
    • IOC操作Bean管理(bean 作用域 )


IOC 操作 Bean 管理
IOC 操作 Bean 管理(xml 注入其他类型属性)

1、字面量

(1)null 值



 

(2)属性值包含特殊符号



 >]]>

2、注入属性-外部 bean

(1)创建两个类 service 类和 dao 类
(2)在 service 调用 dao 里面的方法 (

public class UserService {
 //创建 UserDao 类型属性,生成 set 方法
 private UserDao userDao;
 public void setUserDao(UserDao userDao) {
 this.userDao = userDao;
 }
 public void add() {
 System.out.println("service add...............");
 userDao.update();
 }
}

(3)在 spring 配置文件中进行配置

    
   
    
    
    

3、注入属性-内部 bean

(1)一对多关系:部门和员工 一个部门有多个员工,一个员工属于一个部门 部门是一,员工是多。
(2)在实体类之间表示一对多关系,员工表示所属部门,使用对象类型属性进行表示

//部门类
public class Dept {
 private String dname;
 public void setDname(String dname) {
 this.dname = dname;
 }
}
//员工类
public class Emp {
 private String ename;
 private String gender;
 //员工属于某一个部门,使用对象形式表示
 private Dept dept;
 public void setDept(Dept dept) {
 this.dept = dept;
 }
 public void setEname(String ename) {
 this.ename = ename;
 }
 public void setGender(String gender) {
 this.gender = gender;
 }
 }

(3)在 spring 配置文件中进行配置

    
    
    
    
    
    
        
    
    


4、注入属性-级联赋值
(1)第一种写法



 
 
 
 
 



 

(2)第二种写法



 
 
 
 
 
 


 

IOC 操作 Bean 管理(xml 注入集合属性)

1、注入数组类型属性
2、注入 List 集合类型属性
3、注入 Map 集合类型属性

(1)创建类,定义数组、list、map、set 类型属性,生成对应 set 方法

public class stu {
    private String [] course;
    private List list;
    private Map map;
    private Set set;
    private  List coursesList;
    public void setCoursesList(List courses) {
        this.coursesList = courses;
    }

    public void setList(List list) {
        this.list = list;
    }

    public void setMap(Map map) {
        this.map = map;
    }

    public void setSet(Set set) {
        this.set = set;
    }

    public void setCourse(String[] course) {
        this.course = course;
    }
    public void add(){
        System.out.println(Arrays.toString(course));
        System.out.println(list);
        System.out.println(map);
        System.out.println(set);
        System.out.println(coursesList);
    }
}

(2)在 spring 配置文件进行配置


    
        
            Java
            数据库
        
    
    
        
            
            
        
    

    
        
            MYSQl
            Redis
        
    

    
        
            张三
            李四
        
    

      
          
              
              
          
      
 
    
    
        
    

    
        
    

4、把集合注入部分提取出来

(1)在 spring 配置文件中引入名称空间 util





    
    
        易筋经九阳真经九阳神功
    


    
    
    
        
    

IOC 操作 Bean 管理(FactoryBean)

1、Spring 有两种类型 bean,
一种普通 bean,另外一种工厂 bean(FactoryBean)
2、普通 bean:在配置文件中定义 bean 类型就是返回类型
3、工厂 bean:在配置文件定义 bean 类型可以和返回类型不一样

第一步 创建类,让这个类作为工厂 bean,实现接口 FactoryBean
第二步 实现接口里面的方法,在实现的方法中定义返回的 bean 类型

public class Mybean implements FactoryBean {
    @Override
    //定义返回bean
    public Course getObject() throws Exception {
        Course course=new Course();
        course.setCourse("abc");
        return course;
    }
    
    @Override
    public Class getObjectType() {
        return null;
    }

    @Override
    public boolean isSingleton() {
        return false;
    }
}



Spring5的@Test注解引入

Project Structure(快捷键 Ctrl + Alt + Shift + s),点击Project Structure界面左侧的“Modules”

点击右边绿色的 “+”号,选择第一个选项“JARs or directories…”,选择相应的jar包(IDEA的安装目录libjunit-4.11.jar,hamcrest-core-1.3.jar,junit.jar),点“OK”,jar包添加成功。


@Test
public void test3() {
 ApplicationContext context =
 new ClassPathXmlApplicationContext("bean3.xml");
 Course course = context.getBean("myBean", Course.class);
 System.out.println(course);
}
IOC操作Bean管理(bean 作用域 )

1、在 Spring 里面,设置创建 bean 实例是单实例还是多实例

2、在 Spring 里面,默认情况下,bean 是单实例对象

  @Test
    public void test1(){
        ApplicationContext context=new
                ClassPathXmlApplicationContext("bean2.xml");
        Book book2=context.getBean("book",Book.class);
        Book book1=context.getBean("book",Book.class);
        System.out.println(book2);
        System.out.println(book1);
    }


3、如何设置单实例还是多实例
(1)在 spring 配置文件 bean 标签里面有属性(scope)用于设置单实例还是多实例
(2)scope 属性值
第一个值 默认值,singleton,表示是单实例对象
第二个值 prototype,表示是多实例对象

    
    
    
        
    

(3)singleton 和 prototype 区别

第一 singleton 单实例,prototype 多实例
第二 设置 scope 值是 singleton 时候,加载 spring 配置文件时候就会创建单实例对象
设置 scope 值是 prototype 时候,不是在加载 spring 配置文件时候创建 对象,在调用
getBean 方法时候创建多实例对象

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

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

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