zoukankan      html  css  js  c++  java
  • ________________初学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}))

  • 相关阅读:
    DWR2.0的DefaultContainer can't find a classes异常的解决方案
    IIS7.5(FastCGI)PHP7安装手记
    android手机一句话备忘录
    设计模式学习每日一记(21.叠代器模式)
    设计模式学习每日一记(20.中介者模式)
    C&C++多系统集成需要注意的问题
    设计模式学习每日一记(23.责任链模式)
    设计模式学习每日一记(22.访问者模式)
    源码阅读工具总结
    zte v880刷机入门篇
  • 原文地址:https://www.cnblogs.com/qiqisx/p/9330245.html
Copyright © 2011-2022 走看看