目录

​基础​

​@Component​

​@Import​

​@Bean 内部​


基础

​IOC依赖注入(根据类型查找)实例​

Spring系列:注解方式注册Bean的三种方式_java


@Component

package com.test;

import com.test.pojo.User;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Component;

import java.util.Map;

//@Import(IOCDemo2.innerIOCClass.class )
public class IOCDemo2 {


public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
applicationContext.register( InnerIOCClass.class) ;
applicationContext.refresh() ;
lookupBeans(applicationContext);
}

private static void lookupBeans(AnnotationConfigApplicationContext beanFactory) {
if(beanFactory instanceof ListableBeanFactory){
Map<String,User> users = beanFactory.getBeansOfType(User.class);
System.out.println(users);
}
}

@Component
public static class InnerIOCClass {
@Bean
public User user() {
User u = new User();
u.setId(1);
u.setName("NIO");
return u;
}
}

}


@Import

package com.test;

import com.test.pojo.User;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Component;

import java.util.Map;

@Import(IOCDemo2.InnerIOCClass.class )
public class IOCDemo2 {


public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
applicationContext.register( InnerIOCClass.class) ;
applicationContext.refresh() ;
lookupBeans(applicationContext);
}

private static void lookupBeans(AnnotationConfigApplicationContext beanFactory) {
if(beanFactory instanceof ListableBeanFactory){
Map<String,User> users = beanFactory.getBeansOfType(User.class);
System.out.println(users);
}
}

// @Component
public static class InnerIOCClass {
@Bean
public User user() {
User u = new User();
u.setId(1);
u.setName("NIO");
return u;
}
}

}

@Bean 内部

package com.test;

import com.test.pojo.User;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Component;

import java.util.Map;

public class IOCDemo2 {


public static void main(String[] args) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
applicationContext.register( IOCDemo2.class) ;
applicationContext.refresh() ;
lookupBeans(applicationContext);
}

private static void lookupBeans(AnnotationConfigApplicationContext beanFactory) {
if(beanFactory instanceof ListableBeanFactory){
Map<String,User> users = beanFactory.getBeansOfType(User.class);
System.out.println(users);
}
}

@Bean
public User user() {
User u = new User();
u.setId(1);
u.setName("NIO");
return u;
}



}