Spring入门总结

目录
IoC 1
1、IoC容器 1
2、Bean的配置 2
3、使用容器 2
4、依赖注入 2
AOP 3
1、基于xml的配置方式 4
2、基于注解的配置 4
1)基于xml启用使用XML配置启用@AspectJ支持 4
2)创建切面类 5
DAO 5
Transaction 5

IoC
1、IoC容器
容器的概念:负责组装一系列的功能的大脑
org.springframework.context.ApplicationContext接口代表Spring的IoC容器,负责实例化,配置和组装bean。
通常由两个实现类来实例化容器,
new ClassPathXmlApplicationContext(“applicationContext.xml”);
new FileSystemXmlApplicationContext(文件的绝对路径"applicationContext.xml");
2、Bean的配置
applicationContext.xml配置文件是IoC容器的数据源,所有相关的内容都在此文件中配置。
Bean配置如下:
在这里插入图片描述
3、使用容器
BeanClass beanClass = ApplicationContext.getBean(“beanId”);
至此就可以获取到类对象beanClass。
4、依赖注入
在bean实例化的时候可以隐式的给生成的bean注入相应的参数,注入方式有两种:
1、 构造函数注入




其中name是构造函数的入参,value是要注入的值,如果是bean的话用将value改为ref=“beanId”;
2、 Set方法注入




其中name是set方法的入参,value是要注入的值,如果是bean的话用将value改为ref=“beanId”;
至此,Spring的基础讲完,至于bean的生命周期,以及多个实例,在此不多做讲解。如果没有特别指定,bean都是单例模式。
AOP
在讲解aop之前先理解几个概念;
切面:切入点与通知的集合;
切入点:实际业务中需要加通知的地方,例如提交之前需要校验数据的准确性,这个提交动作就是切入点。
通知:实际业务中通知需要做的地方,例如提交之前需要校验数据的准确性,这个校验动作就是通知
1、基于xml的配置方式


pointcut(切入点) advice(通知,例如befor,after)
advisor(配置器)aspect(切面,切点跟通知的组合
aop:config
<aop:aspect id = “befor” ref=“befor”>
<aop:pointcut expression=“execution(* aop.LoginInte.(…))" id=“addBefor”/>
<aop:before method=“Loginbefor” pointcut-ref=“addBefor”/>
</aop:aspect>
</aop:config>。
2、基于注解的配置
1)基于xml启用使用XML配置启用@AspectJ支持
在xml配置文件中加入如下配置

<context:component-scan base-package=“aop”/>
<!—用来启用 @AspectJ支持–>
<aop:aspectj-autoproxy />
2)创建切面类
创建切面类需要有两个注解@Component声明该类是一个组件,@Aspect声明该类是一个切面
在这里插入图片描述
@Pointcut生命切入点的表达式,该方法一般不需要方法体
@Before声明前通知,类似的还有@After,等等
Transaction
与AOP一样两种配置方法:
xml配置
声明transactionManager事务管理类,注入dotaSource数据源



声明切面,advisor是通知,pointcut是切入点,advice-ref是事务管理类,pointcut-ref是通知的id。
aop:config
<aop:pointcut expression="execution(
transaction.TransactionInte.(…))" id=“TransactionService”/>
<aop:advisor advice-ref=“txManager” pointcut-ref=“TransactionService”/>
</aop:config>
定义事务的方式,添加事务的方法
<tx:advice id=“txManager” transaction-manager=“txManager”>
tx:attributes
<tx:method name="add
” read-only=“true”/>
</tx:attributes>
</tx:advice>
注解配置
声明transactionManager事务管理类,注入dotaSource数据源



扫描包空间
<context:component-scan base-package=“transaction”/>
事务管理驱动
<tx:annotation-driven transaction-manager=“transactionManager”/>
在相应的方法上添加注解
@Transactional(readOnly = false)
public void add() {
userDao.addUser();
userDao.selectUser();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值