Spring(1)

2021-06-10 00:05

阅读:714

标签:事务管理器   数值   构造函数   事务管理   前置   事务的隔离级别   配置   为我   only   

共四块内容

(1):spring框架的概述以及spring中基于XML的IOC配置

(2):spring中基于注解的IOC和IOC的案例

(3):spring中的aop和基于XML以及注解的AOP配置

(4):spring中的JdbcTemplate以及spring事务控制

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1、spring的概述

       spring是什么   

       spring的两大核心     

       spring的发展历程和优势   

       spring体系结构

2、程序的耦合以及解耦

       曾经案例中的问题

       工厂模式解耦

3、IOC概念和spring中的IOC

       spring中基于XML的IOC环境搭建

  

4、依赖注入(Dependency Injection)

AAABBBCCCAAABBBCCCAAABBBCCCcccdddBBB

  

  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

spring基于注解的IOC以及IOC案例

1、spring中IOC的常用注解

package com.itheima.service.impl;

import com.itheima.dao.IAccountDao;
import com.itheima.service.IAccountService;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;

/**
 * 账户的业务层实现类
 *
 * 曾经XML的配置:
 *  
 *      
 *  
 *
 * 用于创建对象的
 *      他们的作用就和在XML配置文件中编写一个标签实现的功能是一样的
 *      Component:
 *          作用:用于把当前类对象存入spring容器中
 *          属性:
 *              value:用于指定bean的id。当我们不写时,它的默认值是当前类名,且首字母改小写。
 *      Controller:一般用在表现层
 *      Service:一般用在业务层
 *      Repository:一般用在持久层
 *      以上三个注解他们的作用和属性与Component是一模一样。
 *      他们三个是spring框架为我们提供明确的三层使用的注解,使我们的三层对象更加清晰
 *
 *
 * 用于注入数据的
 *      他们的作用就和在xml配置文件中的bean标签中写一个标签的作用是一样的
 *      Autowired:
 *          作用:自动按照类型注入。只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功
 *                如果ioc容器中没有任何bean的类型和要注入的变量类型匹配,则报错。
 *                如果Ioc容器中有多个类型匹配时:
 *          出现位置:
 *              可以是变量上,也可以是方法上
 *          细节:
 *              在使用注解注入时,set方法就不是必须的了。
 *      Qualifier:
 *          作用:在按照类中注入的基础之上再按照名称注入。它在给类成员注入时不能单独使用。但是在给方法参数注入时可以(稍后我们讲)
 *          属性:
 *              value:用于指定注入bean的id。
 *      Resource
 *          作用:直接按照bean的id注入。它可以独立使用
 *          属性:
 *              name:用于指定bean的id。
 *      以上三个注入都只能注入其他bean类型的数据,而基本类型和String类型无法使用上述注解实现。
 *      另外,集合类型的注入只能通过XML来实现。
 *
 *      Value
 *          作用:用于注入基本类型和String类型的数据
 *          属性:
 *              value:用于指定数据的值。它可以使用spring中SpEL(也就是spring的el表达式)
 *                      SpEL的写法:${表达式}
 *
 * 用于改变作用范围的
 *      他们的作用就和在bean标签中使用scope属性实现的功能是一样的
 *      Scope
 *          作用:用于指定bean的作用范围
 *          属性:
 *              value:指定范围的取值。常用取值:singleton prototype
 *
 * 和生命周期相关 了解
 *      他们的作用就和在bean标签中使用init-method和destroy-methode的作用是一样的
 *      PreDestroy
 *          作用:用于指定销毁方法
 *      PostConstruct
 *          作用:用于指定初始化方法
 */
@Service("accountService")
//@Scope("prototype")
public class AccountServiceImpl implements IAccountService {

//    @Autowired
//    @Qualifier("accountDao1")
    @Resource(name = "accountDao2")
    private IAccountDao accountDao = null;

    @PostConstruct
    public void  init(){
        System.out.println("初始化方法执行了");
    }

    @PreDestroy
    public void  destroy(){
        System.out.println("销毁方法执行了");
    }

    public void  saveAccount(){
        accountDao.saveAccount();
    }
}

 

2、案例使用XML方式和注解方式实现表单的CRUD操作

    持久层技术选择:dbutils

3、改造基于注解的IOC案例,使用纯注解的方式实现

    spring的一些新注解使用

4、spring和Junit的整合

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1、完善account案例

2、分析案例中的问题

3、回顾动态代理

4、动态代理另一种实现方式

5、解决案例中的问题

6、AOP的概念

7、spring中的AOP相关术语

8、spring中基于XML和注解的AOP配置

  

package com.itheima.test;

import com.itheima.service.IAccountService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 测试AOP的配置
 */
public class AOPTest {

    public static void main(String[] args) {
        //1.获取容器
        ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
        //2.获取对象
        IAccountService as = (IAccountService)ac.getBean("accountService");
        //3.执行方法
        as.saveAccount();
        as.updateAccount(1);
        as.deleteAccount();
    }
}

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1、spring中的JdbcTemplate

        JdbcTemplate的作用:用于和数据库交互的实现对表的CRUD操作

        如何创建该对象:

        对象中的常用方法:

2、spring基于AOP的事物控制

3、spring中的事物控制

    基于xml和基于注解

  

 

Spring(1)

标签:事务管理器   数值   构造函数   事务管理   前置   事务的隔离级别   配置   为我   only   

原文地址:https://www.cnblogs.com/yong21/p/14476411.html


评论


亲,登录后才可以留言!