Spring框架——小结

Spring框架——入门一

Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架

Spring框架核心

1. IoC 反转控制:一个对象依赖的其他对象会被动的方式传递过来,而不是这个对象自己创建或是查找依赖对象
    作用:降低程序间耦合

2. AOP 面向切面编程

3. DI:依赖注入,IoC的一种体现。
    Bean依赖注入方式:①构造方法 ②setter方法 ③注解
    注入的数据类型:①简单数据类型 ②POJO ③复杂数据类型

4. Bean实例化三种方式:①空参构造 ②工厂方法 ③工厂静态方法
   获取Bean三种方式:①getBean(byName) ②getBean(byType) ③getBean(byName,byType)

Spring框架——入门二

1. Spring注解开发:

① 原始注解:
    @Component:实例化Bean对象
    语义化注解
    @Controller:同@Component,web层
    @Service:同@Component,service层
    @Repository:同@Component,dao层

    @Value:注入普通属性, 也使用可以SqEL表达式进行数据的注入
    @Autowired:byType 在字段(成员变量)上使用,根据字段数据类型进行依赖注入
    @Qualifier:byName 在字段上使用时必须结合@Autowired使用,按照Bean在IoC容器中名称进行依赖注入
                       在方法参数出使用,可以对参数进行依赖注入
    @Resource:jdk中提供的注解,jdk9及以上版本失效,作用同 @Autowired + @Qualifier

    @Scope:Bean作用范围

    @PostConstruct:初始化方法
    @PreDestroy:销毁方法
② 新注解
    @Configuration:指定当前类为核心配置类
    @ComponentScan:指定扫描初始化容器扫描的包
    @Import:导入其他配置类
    @PropertySource:加载.properties配置文件,可以结合@Value
    @Bean:在方法上使用可以将方法返回值放入IOC容器,可以结合@Qualifier对参数进行依赖注入

2. Spring整合Junit

相关注解:
    @RunWith注解替换原来的运行期
    @ContextConfiguration指定配置文件或配置类
    @Autowired:byType 在字段(成员变量)上使用,根据字段数据类型进行依赖注入

步骤:
① 导入Spring集成Junit的坐标
② 使用@RunWith(SpringJUnit4ClassRunner.class)注解替代原来的运行期
③ 使用@ContextConfiguration("classpath:config.xml")指定配置文件,或核心配置类
   若要加载其他配置文件如加载.properties配置文件,使用@PropertySource("classpath:xxx.properties")
④ 使用@Autowired注入测试对象
⑤ 创建测试方法

Spring框架——入门三

1. AOP:Spring核心之一,是OOP的扩展,面相切面编程

2. AOP相关术语:

① 连接点:有可能会被增强的方法成为连接点。
② 切入点:被增强的方法。
③ 通知:增强。
④ 织入:动词:切入点 + 切面对象结合
⑤ 切面对象:提供增强方法的类对象

3. AOP通知类型

① 前置通知
② 后置通知
③ 环绕通知
④ 异常抛出通知
⑤ 最终通知

4. AOP的xml配置步骤:

① 导入坐标 aspectJweaver(语言组织联盟,解析切入点表达式) & spring-context
② 创建目标接口、目标类和切面类
③ 在xml文件中配置目标类和切面类,也就是将对象创建权交给spring
④ 引入aop命名空间
⑤ 在xml文件中配置织入关系
    <aop:config>
        <!-- 配置切面对象 -->
        <aop:aspect ref="切面类Bean标签id">
            <!-- 织入:切点+通知 -->
            <aop:通知类型 method="切面的方法名" pointcut="切点表达式"></aop:通知类型>
        <aop:aspect>
    <aop:config>
⑥ 测试

5. AOP的注解开发步骤:

① 创建目标接口、目标类和切面类
② 在目标类上加@Component注解
③ 在切面类上加@Component注解,@Aspect注解,声明当前类为切面
④ 在切面类使用注释配置织入关系:
    @Before @AfterReturnning @AfterThrowing @Around @After(切入点表达式)
⑤ 创建核心配置类
    @Configuration 声明当前类为核心配置类
    @ComponentScan("com.xxx") 指定创建容器时扫描的包
    @EnableAspectJAutoProxy 开启AOP注解支持/AOP自动代理
⑥ 测试

Spring框架——入门四

Spring-事务

1.声明式事务

——基于xml
1.1导入坐标:spring-tx
1.2在核心配置文件中声明事务管理器对象
    <bean id="transactionManager" class="...DataSourceTransactionManager">
        <!--需要设置一个数据源对象-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>
1.3声明事务通知,配置事务属性:
    ①isolation:隔离级别(四种)
        DEFAULT:根据数据库选择默认隔离级别
    ②propagation:传播行为(七种)
        REQUIRED:默认值,有事务则使用事务,没有事务则创建一个新的事务
        SUPPORTS:有事务则使用事务,没有事务则不使用事务,适用于查询功能
    ③read-only:只读,false关闭(默认)适用于增删改,true开启适用于查
    ④timeout:设置超时时间,默认-1,没有超时限制。如果有,以秒为单位进行设置
    ⑤rollback-for:用于指定一个异常,当执行产生该异常时,事务回滚。产生其他异常事务不回滚。没有默认值,不写时,任何异常都回滚
    ⑥no-rollback-for:用于指定一个异常,当执行产生该异常时,事务不回滚。产生其他异常事务回滚。没有默认值,不写时,任何异常都回滚
    <!--通知 事务的增强-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <!--事务 -->
            <tx:method name="*" isolation="DEFAULT" propagation="SUPPORTS"  read-only="false"/>
        </tx:attributes>
    </tx:advice>
1.4配置AOP,织入事务
    <!--配置事务的aop织入-->
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.itcast..*.*(..))"></aop:advisor>
    </aop:config>
——基于注解(注解+xml配置)
1.1导入坐标:spring-tx
1.2在核心配置文件中声明事务管理器对象
    <bean id="transactionManager" class="...DataSourceTransactionManager">
        <!--需要设置一个数据源对象-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>
1.3使用 @Transactional 在需要进行事务控制的类或是方法上修饰,注解可用的属性同xml配置方式,例如隔离级别、传播行为等。
1.4在xml配置文件中配置 组件扫描 和 事务注解驱动
    <!—之前省略datsSour`_****_`ce、jdbcTemplate、平台事务管理器的配置-->
    <!--组件扫描-->
    <context:component-scan base-package="com.xxx"/>
    <!--事务的注解驱动-->
    <tx:annotation-driven/>
——纯注解
1.1导入坐标:spring-tx
1.2使用 @Transactional 在需要进行事务控制的类或是方法上修饰,注解可用的属性同xml配置方式,例如隔离级别、传播行为等。
1.3创建核心配置类
    @Configuration指定当前类为核心配置类
    @ComponentScan("cn.xxx")定义创建IoC容器时扫描的包
    @EnableTransactionManagement在核心配置类上开启事务的注解驱动

2.编程式事务

通常不用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值