Spring基础知识(三)

目录

1.@Component、@Controller、@Service、@Repository的功能

2.@Required注解

3.@Autowired注解

1. @Autowired功能

2. @Autowired注解其他能够标识的位置

3. @Autowired注解的原理

4.@Qualifier注解

5.@ReuqestMapping注解

6.什么是Spring DAO

7.Spring DAO的作用

8.Spring框架中的单例bean是什么?线程安全吗?

9.JdbcTemplate是什么

10.Spring支持的事务管理类型


1.@Component、@Controller、@Service、@Repository的功能

        @Component:将类标识为普通bean组件,能够被spring组件扫描机制扫描

        @Controller:将类标识为控制层组件,即标记为Spring Web MVC的控制器

        @Service:将类标识为业务层组件

        @Repository:将类标识为持久层组件

四个注解功能一样:将一个类标记为bean,只是名字不一样,这是为了开发人员看的

注意:注解要加到实现类上

2.@Required注解

位置:配置在bean的setter方法上

功能:配置的setter方法需要写在xml配置文件中,否则会抛出BeanInitializationException异常

public class Person{
private String name;

@Required
public void setName(String name){
    this.name=name;
} 
public string getName(){
    return name;
    }
}

 若不配置,则报错

   <bean id="person" class="com.gz.Person">
       <property name="name"  value="张三" />
   </bean>

3.@Autowired注解

1. @Autowired功能

        实现自动装配功能的注解

2. @Autowired注解其他能够标识的位置

     标识在成员变量上,此时不需要设置成员变量的set方法(一般用这个,此时可以不用在创造set方法)

     标识在set方法上

     标识在为当前成员变量赋值的有参构造器上

3. @Autowired注解的原理

    1. 默认通过byType方式,在ioc容器中通过类型匹配某个bean为属性赋值(一般都是这这个就可以)

    2. 若有多个类型匹配的bean,此时会自动转换为byName的方式实现自动装配的效果;即将要赋值的属性的属性名作为bean的id匹配某个bean为属性赋值

    3. 若byType和byName的方式都无法实现自动装配,即IOC容器中有多个类型匹配的bean,且这些bean的id和要赋值的属性的属性名都不一致,此时会抛出异常:NoUniqueBeanDefinitionException(这种情况几乎不会发生,一般默认byType就能处理,因为一个类型的bean不会在ioc容器中存在多个)

    4. 此时可以在要赋值的属性上,添加一个注解@Qualifier;通过该注解的value属性值,指定某个bean的ID,将这个bean为属性赋值

4.@Qualifier注解

创建了多个相同类型的bean,但仅装配其中一个bean时,则使用@Qualifier 和 @Autowired配合,来指定一个确定的bean。

5.@ReuqestMapping注解

功能:将当前浏览器所发送的请求映射到标识到的方法中执行,然后让该方法来处理请求

代码示例:

@RequestMapping("/")
public String testIndex(){
    return "index";
}

6.什么是Spring DAO

概念:DAO,Data Access Object:数据访问对象

实现:Spring以统一的方式整合底层的持久化技术,然而不同的持久化实现技术异常体系不同。Spring提供统一的异常体系,将不同的持久化技术异常转换为Spring的异常,从而定义与持久化技术无关的DAO接口。

7.Spring DAO的作用

1.使得JDBC、Hibernate等的数据访问技术更容易以一种统一的方式工作

2.能够在持久性技术之间切换

3.编写代码时无需考虑捕获不同技术的异常

8.Spring框架中的单例bean是什么?线程安全吗?

单例:将bean中的标签设置为singleton,表示在Spring IoC容器中只有一个实例

线程是否安全:是线程不安全的

9.JdbcTemplate是什么

位置:是Spring JDBC API提供的一个类

作用:提供API解决:将数据库数据转换为基本数据类型或对象

          执行写好的或可调用的数据库sql语句

          提供自定义的数据错误处理

10.Spring支持的事务管理类型

编程式事务:编程式是具体实现事务都需要编程实现,难以维护

声明式事务:声明式只需要声明需求即可由框架代为实现,使用注解和xml配置管理事务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值