Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发

一、bean注解开发 21

1.1注解开发定义bean 21

Spring2.0之后开始了各种注解开发。2.5比较完善。3.0纯注解开发

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第1张图片

注解作用替代bean的配置,例如本案例中,使用注解开发替代下面的bean。

 在配置bean的类中添加@Component,代表上图中的bean。

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第2张图片

1.1.1使用注解开发的步骤 

 步骤一:在原来的需要改变的bean创建的类中添加下图所示

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第3张图片

 步骤二:在原来的applicationContext.xml中添加一个搜索注解的代码

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第4张图片

1.1.2另外一种注释开发bean

步骤一:

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第5张图片

 步骤二:在程序中使用类型.class对bean进行访问

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第6张图片

1.1.3衍生注解

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第7张图片

controller:表现层,也是控制层,负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

Service:服务层被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务。

Repository:数据层,用于DAO(data access object)层,比较基础的操作,具体到对于某个表的增删改查。面向的是表数据

作用:功能和@Component的效果一样,只不过是为了方便理解。

1.2纯注解开发 22

作用:实际上就是将Spring的配置信息进行另外的一种形式的替换。使用Java类替代了Spring核心配置文件。

步骤一:

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第8张图片  

 步骤二:

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第9张图片

1.2.1配置信息替换的步骤

步骤一:在总包下创建一个配置包,并创建一个配置类。

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第10张图片

步骤二:替换配置信息的基本内容用@Configuration,在所创建的配置类中进行添加。

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第11张图片

 步骤三:添加配置信息的基本内容信息的其他内容,比如说搜索Component的位置扫描功能。

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第12张图片

 步骤四:添加创建一个新的内容。

配置类

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第13张图片

 总结:

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第14张图片

1.2bean管理 23

1.2.1bean作用范围 

通过注解方式改变单例与非单例的注释。使用@Scope 

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第15张图片

 下面的这个指令是非单例

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第16张图片

1.2.2 bean的生命周期

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第17张图片

bean生命周期初始化和关闭前的处理操作:两个注解的使用@PostConstruct@PreDestroy 

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第18张图片

 总结:

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第19张图片

代码部分:

 BookDaolmpl部分的展示:

package com.itheima.dao.impl;

import com.itheima.dao.BookDao;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

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

@Repository
@Scope("singleton")
public class BookDaolmpl implements BookDao {
    @Override
    public void save() {
        System.out.println("book dao save ...");
    }
    @PostConstruct
    public void init() {
        System.out.println("init ...");
    }
    @PreDestroy
    public void destroy() {
        System.out.println("destroy ...");
    }
}

主程序的展示:

package com.itheima;

import com.itheima.config.SpringConfig;
import com.itheima.dao.BookDao;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.scheduling.annotation.AnnotationAsyncExecutionInterceptor;

public class APP {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
        BookDao bookDao1 = ctx.getBean(BookDao.class);
        BookDao bookDao2 = ctx.getBean(BookDao.class);
        System.out.println(bookDao1);
        System.out.println(bookDao2);
        ctx.close();
    }
}

结果:

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第20张图片

二、依赖注入的注解开发 24

2.1自动装配

2.1.1引入类型的自动装配

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第21张图片

 

单个bean可以直接使用@Autowired进行自动装配。(如果是单个bean的,以及是按照类进行读取的,可以使用@Autowired

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第22张图片

 

方式一:

注意:多个相同的bean按照类获取的,则不能只使用@Autowired,需要多增加一个注解@Qualifier("bean名称")

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第23张图片

方式二: 

多个相同的bean还要使用@Autowired方法的,按照名称获取的方法,可以解决多个bean自动装配的问题。

2.1.3简单类型的自动装配

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第24张图片

使用@Value进行注解 。

使用@Value的作用:可以将外部文件比如properties的数据传输到相应位置。

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第25张图片

2.1.4加载propertes文件

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第26张图片 

@Value的作用,可以读取properties中的文件内容。

步骤一:添加@Value注解

步骤二:添加依赖在SpringConfig中添加@Propertysource("Properties文件名称")

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第27张图片

多个properties依赖配置的话,需要使用{ xxx,xxx,xxx}进行添加

步骤三:在类中进行修改,把properties的数据信息引用到类中。

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第28张图片

 创建properties文件:将文件的后缀进行修改成.properties即可。 

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第29张图片

总结:

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第30张图片

三、第三方bean管理

3.1第三方bean管理导入处理方式 25

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第31张图片

 

3.1.1第三方bean管理导入处理方式一

步骤一:首先将第三方的bean在pom.xml进行导包。

步骤二:在SpringConfig中进行导入第三方bean的配置注解。@Bean

注意:添加@Bean,其当前该方法的返回值就是一个bean 

    //1、定义一个方法获得要管理的对象
    //2、添加@Bean,其当前该方法的返回值就是一个bean
    @Bean("dataSource")//既可按照名称,又可以是按照类
    public DataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUrl("jdbc:mtsql://localhost:3306/spring_db");
        ds.setUsername("root");
        ds.setPassword("root");
        return ds;

步骤三:在主函数中就像bean一样处理使用即可。

    public static void main(String[] args) {
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
        DataSource dataSource = ctx.getBean(DataSource.class);
        System.out.println(dataSource);
    }

结果如下:

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第32张图片

3.1.2第三方bean管理导入处理方式二 不建议使用

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第33张图片

 

在config包下创建一个类,把之前在SpringConfig所配置的文件都移动到到新创建JdbcConfig包下。

然后在原来的SpringConfig下添加@ComponentScan("JdbcConfig的位置")。JdbcConfig也要有@Configuration。

注:这种不推荐使用!

3.1.3第三方bean管理导入处理方式三 建议使用

注:建议使用该方法!

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第34张图片

 

步骤一:

将写好的关于第三方bean的方法写入到新创建的需要配置的第三方类当中。 

    //1、定义一个方法获得要管理的对象
    //2、添加@Bean,其当前该方法的返回值就是一个bean
    @Bean("dataSource")//既可按照名称,又可以是按照类
    public DataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUrl("jdbc:mtsql://localhost:3306/spring_db");
        ds.setUsername("root");
        ds.setPassword("root");
        return ds;

步骤二: 

在SpringConfig中使用注解@Import({导入第三方包的类的名称.class})

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第35张图片

 3.2注解开发实现为第三方bean注入资源 26

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第36张图片

 Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第37张图片

 总结:

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第38张图片

3.3注解开发总结 27

3.3.1XML配置与注解配置比较

Day03SSM第三次笔记---bean注解开发和依赖注入bean注解开发_第39张图片

 

 

你可能感兴趣的:(Spring,java,servlet,spring)