[笔记]Spring Bean的配置

//
Bean的初始化 全局:default-init-method="init"
	配置方式:
		
   
   
		public class Bean{
			public void init(){
				//初始化
			}
		}
	接口方式:
		
   
   
		public class Bean implements InitializingBean{
			@Override
			public void afterPropertiesSet() throws Exception{
				//初始化
			}
		}
	
Bean 的销毁 全局:default-destroy-method="destroy"
	配置方式:
		
   
   
		public class Bean{
			public void destroy(){
				//销毁
			}
		}
	接口方式:
		
   
   
		public class Bean implements DisposableBean{
			@Override
			public void destroy() throws Exception{
				//销毁
			}
		}

执行顺序:  接口方式->配置方式
如果有配置,则默认配置无效
//
Aware接口: 实现不同的Aware接口可获得相应的Bean实例
	ApplicationContextAware
	BeanNameAware
	....
	
//
自动装配 default-autowire="No"
用了自动装配不需设置
   
    
		
    
    
		
    
    	
				//use-default-filter="false" 禁用自动发现与注册
		//type: annotation 注解
		//		assignable 具体类
		//		regex 通配符
		//		custom 自定义
		//		aspectj
	
	//----定义bean----
	@Service   
	@Repository
	@Controller
	@Component 
	//----------------
	@Autowire //自动装配(setter,构造器,成员,方法)
		//Autowire(required=false) 找不到不抛出异常,给null
		//Autowire(required=true) 每个类只有一个构造器可以标记true
		//可注解系统接口:
			//ApplicationContext 等等
		//可注解在Set
    
    
     
     或Map
     
     
      
      , 解析所有该类型的Bean
			//@Order可以使Set有序
		//@Qualifier 指定哪个beanid,适用于多个实现类的情况
			//可用在方法参数中
	@Required //注解setter方法
	@Resource //通过名称引用目标
		//(name="xxx") 指定beanid, 默认为字段名
	//@Autowire 适用于成员,构造器,多参方法
		//这些允许在参数级别使用Qualifier缩小范围
	//@Resource 适用于成员,只有一个参数的setter,不适合构造器
	
	@PostConstruct //初始化
	@PreDestroy //销毁   注解方法public void xx()

	//-----------------
	//作用范围
	@Scope   //prototype singleton session request  'global session'
		//proxyMode= ScopedProxyMode.TARGET_CLASS
		
/
	//配置bean容器
	@Configuration 注解类
	@Bean 
	// :
	@Configuration
	public class MyBeanConfig{
		@Bean 
			//(
			//	name="unitBeans" //可指定beanname,默认为方法名
			//	initMethod="init" //可指定init-method
			//	destroyMethod="destroy" //可指定destroy-method
			//)
		public Handle unitBean(){
			return new Unit();
		}
	}
	//等同于
	
      
      
		
       
       
	
      
      
	
//
//	基于容器的注解和配置:

//   读取配置文件属性

//xml方式:
	
      
      
	
	
      
      
		
       
       
		
       
       
		
       
       
	
      
      

//注解方式:
	@Configuration
	@ImportResource("classpath:/ccino/properties.xml")
	public class AppConfig{
		@Value("${jdbc.url}")
		private String url;
		@Value("${jdbc.username}")
		private String username;
		@Value("${jdbc.password}")
		private String password;
		@Bean
		public DataSource dataSource(){
			return new DriverManagerDataSource(url,username,password);
		}
		
	}
//


/*	JSR330标准注解

Maven引入javax.inject包


      
      
	
       
       
         javax.inject 
       
	
       
       
         javax.inject 
       
	
       
       
         1 
       

      
      
*/
	@Inject //等效于Autowire, 用于类,属性,方法,构造器
	@Named("name") 
		//类似@Qualifier 可用于参数  与@Component等效
		//可用于类, 指定bean名

     
     
    
    
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值