Spring框架

Spring框架的学习

  • IOC控制反转
  • AOP面向切面

Spring 的依赖注入(DI)

所谓依赖注入,就是IOC容器在运行期间,动态地将对象的依赖关系注入到对象的属性中。
底层原理:Spring 根据配置文件中配置依赖关系,首先获取被依赖的对象dao实例,调用service对象中的set方法将dao实例设置(注入)到service当中去。

  • 设值注入
  • 构造注入

设值注入

//设值注入
<bean id= "xxx" class="类的全路径dao"></bean>
<bean id="yyy" class="类的全路径service">
	<property name="属性名" ref="xxx" ></property>
</bean>

构造注入

<bean id="yyy" class="类的全路径service">
	<constructor-arg name="xxx" ref=xxx"">
</bean>
<bean id= "xxx" class="类的全路径dao"></bean>

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

//无参构造方法
<bean id="xxx" class="类的全路径"></bean>
//有参构造方法
添加有参的构造器
<bean id="xxx" class="类的全路径">
	<constructor-arg index="0" value="110" type="java.lang.Long">
	<constructor-arg index="1" value="quanbao" type="java.lang.Long">
</bean>
静态工厂
<bean id="ccc" class="类的全名" factory-method="工厂的方法名"></bean>

Spring加载配置文件的方法

// Spring 加载配置文件的方法
ApplicationContext application = new ClassPathXmlApplicationContect("xxx.xml");
ApplicationContext application2 = new ClassPathXmlApplicationContect(new String["xxx.xml","sss.xml"]);
ApplicationContext application3 = new ClassPathXmlApplicationContect("classpath:xxx*.xml");

//

Bean 的作用域

Dao:单例(为什么用单例?是线程安全的,用多线程是线程不安全的)
Service:单例
Action:多例(在bean 中添加 scope=“prototype”)
servlet:单例

基于注解(ICO的开发)

实例化注解

  • @Repository(“xxxx”) 标示它是一个dao,指定ben的名称,不指定默认为类名(首字母小写)
  • @Service(“xxxx”)使用Service注解标示此ben为一个业务Service
  • @Controller(“xxxx”)使用controller标示此ben为一个控制器
  • @Scope(“prototype”)使用scope注释标示一个多例
  • @component(“sss”)可以用在任何的ben上

在Bean中配置扫描的组件

<context:component-scan base-package=“包路径”></context:component-scan>

依赖注入的注解
用在属性和方法上面

  • @Autowired 按类型注入
  • @Qualifire(“bean 的名称”)指定注入的bean

@Resource(“bean的名称”) 此注解去bean的容器去找bean —此注解是jdk的
激活属性注解:</context:annotation-config> 如果没有用前面的那四种类的注解

Spring的底层原理



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值