自我学习-Spring框架_Note01

1. 编写流程(基于xml)

1.导入jar包: 4+1

	-beans/core/context/expression | commons-logging

2.编写目标类:dao和service

3.spring配置文件

	-IoC: <bean id="" class="">
	-DI: <bean> <property name="" value="" | ref="">
	-实例化方式:
		默认构造
		静态工厂: <bean id="" class="工厂类" factory-method="静态方法">
		实例工厂: <bean id="工厂名" class="工厂类"> <bean id="" factory-bean="工厂名" factory-method="方法">
	-作用域: <bean id="" class="" scope="singleton|prototype">
	-生命周期: <bean id="" class="" init-method="" destroy-method="">
		后处理bean  BeanPostProcesser接口, <bean class="注册">, 对容器中所有的bean都生效。
	-属性注入: 
		构造方法注入: <bean> <constructor-arg index="" type="">
		setter方法注入: <bean> <property>
		p命名空间: 简化property  <bean p:属性名="普通值"   p:属性名-ref="引用值">  注意声明命名空间。
		SpEL: <property name="" value="#{表达式}">
			#{123}  #{'abc'}  #{beanId.propName?.methodName()}  #{T(类).静态方法|字段}
		集合注入:
			<array> <list> <set> <map><entry key="" value=""> <props><prop key="">...

4.核心api

	BeanFactory,延迟实例化bean,第一次调用getBean
	ApplicationContext 一般常用,功能更强。
		ClassPathXmlApplicationContext 加载classpath.xml文件
		FileSystemXmlApplicationContext 加载指定盘符文件,ServletContext.getRealPath()

2. 后处理bean对一个生效

@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
	if ("userServiceId".equals(beanName)) {
		System.out.println("前方法:" + beanName);
	}
	return bean;
}

3. 注解

1.扫描含有注解的类

	<context:component-scan base-package="">

2.常见的注解

	@Component 组件,任意bean
	WEB
		@Controller		-web层
		@Service		-service层
		@Repository		-dao层
	注入	-字段或setter方法
		普通值: @Value
		引用值: 
			类型: @Autowired
			名称1: @Autowired @Qualifier("名称")
			名称2: @Resource("名称")
		作用域: @Scope("prototype")
		生命周期:
			初始化方法: @PostConstruct
			销毁方法: @PostDestroy

4. 注解和xml混合使用

1.将所有的bean都配置到xml中

	<bean id="" class="">

2.将所有的依赖都使用注解

	@Autowired
	默认不生效。为了使其生效,需要在xml中配置: <context:annotation-config>

总结:

	注解1: <context:component-scan base-package="">
	注解2: <context:annotation-config>
	1.一般情况两个注解不一起使用。
	2.“注解1”扫描含有注解(@Component等)类,注入注解自动生效。
		“注解2”只在xml和注解(注入)混合使用时,使注入的注解生效的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值