zoukankan      html  css  js  c++  java
  • IntelliJ IDEA 2017版 Spring5 的RunnableFactoryBean配置

    1、新建RunnableFactoryBean

     1 package com.spring4.pojo;
     2 
     3 import org.springframework.beans.factory.FactoryBean;
     4 
     5 /**
     6  * Created by liuya
     7  *
     8  * @author User: liuya
     9  *         Date: 2018/5/3
    10  *         Time:  23:31
    11  *         projectName:spring4
    12  */
    13 public class RunnableFactoryBean implements FactoryBean<Runnable> {
    14 
    15 
    16     /**
    17      * 获取FactoryBean获取的实例对象
    18      *
    19      * @return Runnable
    20      * @throws Exception
    21      */
    22     @Override
    23     public Runnable getObject() throws Exception {
    24         return () -> {
    25         };
    26     }
    27 
    28     /**
    29      * 创建什么类型的对象
    30      *
    31      * @return Class<?>
    32      */
    33     @Override
    34     public Class<?> getObjectType() {
    35         return Runnable.class;
    36     }
    37 
    38 
    39     /**
    40      * 是不是单例的
    41      *
    42      * @return
    43      */
    44     @Override
    45     public boolean isSingleton() {
    46         return true;
    47     }
    48 }
    View Code

    2、加载到Myconfig中

     1 package com.spring4.conf;
     2 
     3 import com.spring4.pojo.RunnableFactoryBean;
     4 import com.spring4.pojo.User;
     5 import org.springframework.context.annotation.Bean;
     6 import org.springframework.context.annotation.Configuration;
     7 import org.springframework.context.annotation.Scope;
     8 
     9 /**
    10  * Created by liuya
    11  *
    12  * @author : liuya
    13  *         Date: 2018/5/2
    14  *         Time:  23:50
    15  *         projectName:spring4
    16  *         配置类
    17  */
    18 
    19 @Configuration
    20 public class SpringConf {
    21 
    22 
    23     /**
    24      * 配置bean 写一个方法,返回bean
    25      * <p>
    26      * 指定名字,默认是方法名字
    27      */
    28     @Bean(name = "getUser")
    29     /**
    30      * 修改为非单例模式,创建的对象就是不一样的了
    31      *
    32      */
    33     @Scope(value = "prototype")
    34     public User getUser() {
    35         User user = new User();
    36         user.setAge(29);
    37         user.setUserName("王圆圆");
    38         user.setPassWord("1110000");
    39 
    40         return user;
    41     }
    42 
    43     @Bean
    44     public RunnableFactoryBean createRunnableFactoryBean() {
    45         RunnableFactoryBean runnableFactoryBean = new RunnableFactoryBean();
    46 
    47         return runnableFactoryBean;
    48 
    49     }
    50 
    51 
    52 }
    View Code

    3、方法加入Application测试

     1 package com.study.spring;
     2 
     3 import com.spring4.conf.SpringConf;
     4 import com.spring4.pojo.RunnableFactoryBean;
     5 import com.spring4.pojo.User;
     6 import org.springframework.boot.SpringApplication;
     7 import org.springframework.boot.autoconfigure.SpringBootApplication;
     8 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
     9 
    10 import java.io.IOException;
    11 import java.util.List;
    12 
    13 /**
    14  * @author liuyang
    15  */
    16 @SpringBootApplication
    17 public class Spring4Application {
    18 
    19     public static void main(String[] args) {
    20         // 通过Java配置来实例化Spring容器
    21         AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConf.class);
    22 
    23         // 在Spring容器中获取Bean对象
    24         User user = context.getBean(User.class);
    25 
    26         //根据名字获取(默认是根据方法名字获取)
    27         Object user2 = context.getBean("getUser");
    28 
    29         System.out.println(user.getUserName() + ", " + user.getAge() + ", " + user.getPassWord());
    30         System.out.println(user2.toString() + ", ");
    31         String list = user2.toString();
    32         String[] ont = list.split(",");
    33         for (int i = 0; i < ont.length; i++) {
    34             System.out.println(ont[i]);
    35         }
    36 
    37         RunnableFactoryBean runnableFactoryBean = context.getBean(RunnableFactoryBean.class);
    38 
    39         try {
    40             System.out.println("createRunnableFactoryBean  :"+runnableFactoryBean);
    41         } catch (Exception e) {
    42             e.printStackTrace();
    43         }
    44 
    45         // 销毁该容器
    46         context.destroy();
    47     }
    48 }
    View Code
  • 相关阅读:
    读书笔记之理想设计的特征
    一些javascript 变量声明的 疑惑
    LINQ 使用方法
    Google MySQL tool releases
    读书笔记之设计的层次
    EF之数据库连接问题The specified named connection is either not found in the configuration, not intended to be used with the Ent
    转载 什么是闭包
    javascript面向对象起步
    Tips
    数据结构在游戏中的应用
  • 原文地址:https://www.cnblogs.com/liuyangfirst/p/8988404.html
Copyright © 2011-2022 走看看