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}))

  • 相关阅读:
    java攻城狮之路(Android篇)--widget_webview_metadata_popupwindow_tabhost_分页加载数据_菜单
    java攻城狮之路(Android篇)--MP3 MP4、拍照、国际化、样式主题、图片移动和缩放
    java攻城狮之路(Android篇)--BroadcastReceiver&Service
    内存调试的东西D/dalvikvm( 809 ): GC_CONCURRENT freed
    java攻城狮之路(Android篇)--Activity生命
    java攻城狮之路(Android篇)--与服务器交互
    java实例练习
    java攻城狮之路(Android篇)--ListView与ContentProvider
    java攻城狮之路(Android篇)--SQLite
    Android中使用自身携带的Junit新建一个测试工程
  • 原文地址:https://www.cnblogs.com/qiqisx/p/9330245.html
Copyright © 2011-2022 走看看