• ________________初学spring1


    javabean的的三种创建、装配

    1、创建一个类实现FactoryBean接口

    public class RunnableFactroyBean implments FactoryBean<Jeep>{

    public Jeep getObject() throws Exception{

     return Jeep();

    }

    public class<?> getObjectType(){

    return Jeep.class;

    }

    public boolean isSingleton(){

    return true;

    }

    }

    使用配置类进行RunnableFactroyBean装配

    2、直接创建一个Jeep类

    package com.lsq.spring;

    public class Jeep {

    public Jeep() {

    }

    }

    使用配置类进行装配(也可在配置类中进行依赖注入)

    @Configuration

    public class MyConfig {

    @Bean

    @scope(”prototype”)//默认单例,此为不单例

    public Jeep createJeep() {

    return new Jeep();

    }

    }

    3、创建一个Jeep类,使用注解来装配

    @compnent(“myJeep”)//指定名字

    @repository

    @service

    @controller

    @autowired 依赖注入

    @resource  JSR 250注解

     @Inject Javax inject JSR330

    public class Jeep {

    }

    调用方法 

    1、通过类型获取

    System.out.println(context.getBean(Jeep.class));

    context.getBeansOfType(User.class);//获取到的是一个map

    2、通过名字调用   两种方式 1⃣️默认为方法名 2⃣️配置时指定@Bean(name="createJeep")3⃣️注解版的名字获取(类名首字母小写)

    System.out.println(context.getBean(“createJeep”));

    三种前置、后置通知的方式

    1、创建类实现 initializingbean内置init和destroy方法

    public class cat  implements InitializingBean,DisPOSableBean{

    public void afterPropertiesSet () throws Exception{

      syso("前置通知");

    }

    public void destroy () throws Exception{

      syso("后置通知");

    }

    }

    2、创建类,自定义init和destroy方法  (建议使用方法,依赖性最好)

    装配制定init和destroy方法

    @Bean(initMethod=“init”,destroy=“destroy”)

    3、创建bean 并创建init和destroy方法

    @PostConstruct 前置

    @PreDestroy后置

    依赖注入时,装配优先级 @primary

    或者使用时 @qualifier("方法名")

     ①annotationConfigApplicationContext(类名.class)

     ②annotationConfigApplicationContext("包名")

    ③componentScan(basepackages="包名",excludeFilters=@Filter(type=FilterType.ASSIGNABLE_TYPE,classes=配置类.class))

    ④componentScan(basepackages="包名",excludeFilters=@Filter(type=FilterType.ASSIGNABLE_TYPE,classes={配置类.class,UserController.class}))

  • 相关阅读:
    网站测试自动化系统—在测试代码中硬编码测试数据
    在WPF里面显示DIB图片格式的图片
    网站测试自动化系统—系统应该有的功能
    Windbg 教程调试非托管程序的基本命令下
    Windbg教程调试非托管程序的基本命令上
    网站测试自动化系统—基于Selenium和VSTT
    WPF中一个通用的BoolToXXX转换类
    使用MPLex实现语法高亮显示的功能代码解释
    网站测试自动化系统—数据驱动测试
    如何控制float类型小数点后的位数
  • 原文地址:https://www.cnblogs.com/qiqisx/p/9330245.html
Copyright © 2020-2023  润新知