Spring注解开发 -- Spring入门(六)

这篇具有很好参考价值的文章主要介绍了Spring注解开发 -- Spring入门(六)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)


发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。

一、spring XML注解开发入门案例

(详细代码见个人主页资源spring源码respr_annonation模块)

1. 在spring入门案例的代码基础上编码

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

2. 在对应的类上添加@Component注解,并起别名(以bookDaoImpl为例)
(如果不起别名则在编写模拟测试类的时候要通过类型获取bean)

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

3. 在核心配置文件中创建context命名空间并配置spring扫描范围

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

4. 编写模拟测试类并运行

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

5**. 小结与拓展**

  • spring注解开发步骤
    Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java
  • 拓展

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

二、spring 纯注解开发入门案例

1. 基于注解的配置
从 Spring 2.5 开始就可以使用注解来配置依赖注入。而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注解,将 bean 配置移动到组件类本身。

2. 创建config包和SpringConfig类,核心配置xml文件可以删除(此处在其文件命名后面加上.bak)

//声明当前类为Spring配置类
@Configuration
//设置bean扫描路径,多个路径书写为字符串数组格式
@ComponentScan({"org.example.service","org.example.dao"})
public class SpringConfig {
}

3. 新建模拟测试类AppForAnnotation及运行结果

(BookServiceImpl类上添加@Service注解[@Component的衍生注解])
Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

4. 小结

  • xml 和 纯注解 核心配置

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

  • xml 和 注解 获取bean容器方式
    Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

三、注解开发bean的作用范围与生命周期

1. bean的作用范围控制

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

2. bean的生命周期控制

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

四、依赖注入

(详细代码见个人主页资源spring源码respr_annonation_di模块)

1. 单个BookDao实现类按类型装配(@Autowired**)**

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

2. 多个BookDao实现类指定装配名称(@Autowire + @Qualifier**)**

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

3. 注入普通类型

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

4. 注入properties文件属性

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java
Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

五、注解开发管理第三方bean

(详细代码见个人主页资源spring源码respr_respr_annotation_third_bean_manager模块)

1. 导入第三方数据源坐标(以druid数据源举例)

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.16</version>
    </dependency>

2. 定义一个方法获得要管理的对象,添加@Bean,表示当前方法的返回值是一个bean

@Configuration
@ComponentScan("com.itheima")
public class SpringConfig {
    @Bean
    public DataSource dataSource(BookDao bookDao){
        System.out.println(bookDao);
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName("com.mysql.jdbc.driver");
        ds.setUrl("jdbc:mysql://localhost:3306/spring_db");
        ds.setUsername("root");
        ds.setPassword("root");
        return ds;
    }
}

3. 模拟测试类APP编写及其运行结果

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

4. 规范化后的文件结构

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

  • jdbc.Config
//@Configuration
public class JdbcConfig {
    @Bean
    public DataSource dataSource(BookDao bookDao){
        System.out.println(bookDao);
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName("com.mysql.jdbc.driver");
        ds.setUrl("jdbc:mysql://localhost:3306/spring_db");
        ds.setUsername("root");
        ds.setPassword("root");
        return ds;
    }
}

  • SpringConfig
@Configuration
@ComponentScan("com.itheima")
//@Import:导入配置信息
@Import({JdbcConfig.class})
public class SpringConfig {
}

5. 小结

  • 第三方bean管理 - 导入式

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

  • 第三方bean管理 - 扫描式

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

六、注解开发实现为第三方bean注入资源

1. 注入普通类型
(成员变量)

//@Configuration
public class JdbcConfig {
    //1.定义一个方法获得要管理的对象
    @Value("com.mysql.jdbc.Driver")
    private String driver;
    @Value("jdbc:mysql://localhost:3306/spring_db")
    private String url;
    @Value("root")
    private String userName;
    @Value("root")
    private String password;
    //2.添加@Bean,表示当前方法的返回值是一个bean
    //@Bean修饰的方法,形参根据类型自动装配
    @Bean
    public DataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName(driver);
        ds.setUrl(url);
        ds.setUsername(userName);
        ds.setPassword(password);
        return ds;
    }
}

2. 注入引用类型

(引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动装配对象)

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

七、注解开发总结

(xml配置对比注解开发)

Spring注解开发 -- Spring入门(六),Spring入门,spring,后端,java

`博客内容借鉴了bilibili黑马程序员SSM课程资料`

总结

欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)文章来源地址https://www.toymoban.com/news/detail-588876.html

到了这里,关于Spring注解开发 -- Spring入门(六)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第五天)MyBatis的注解开发

    ​ 昨天我们深入学习了 MyBatis多表之间的关联映射,了解掌握了一对一关联映射,一对多关联映射,嵌套查询方式以及嵌套结果方式,掌握了缓存机制的一级缓存,二级缓存等概念,也使用了代码进行复现理解 。但是都是基于XML配置文件的方式来实现的,现在我们要学习一下

    2024年02月11日
    浏览(64)
  • Spring 02 -Spring依赖注入+Spring注解开发

    依赖注入:在Spring创建对象的同时,为其属性赋值,称之为依赖注入。 创建对象时,Spring工厂会通过Set方法为对象的属性赋值。 范例:定义一个Bean类型 属性注入 范例:定义一个Bean类型 提供构造方法 构造方法注入 复杂类型指的是:list、set、map、array、properties等类型 定义

    2023年04月09日
    浏览(47)
  • 【Spring6】| Spring IoC注解式开发

    目录 一:Spring IoC注解式开发 1. 回顾注解 2. 声明Bean的四个注解 3. Spring注解的使用 4. 选择性实例化Bean 5. 负责注入的注解(重点) 5.1 @Value 5.2 @Autowired与@Qualifier 5.3 @Resource 6. 全注解式开发 注解的存在主要是为了简化XML的配置 ,Spring6倡导全注解开发。 我们来回顾一下:

    2023年04月12日
    浏览(49)
  • Spring学习笔记之Spring IoC注解式开发

    注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发 注解怎么定义,注解中的属性怎么定义? 注解怎么使用 通过反射机制怎么读取注解 注解怎么定义,注解中的属性怎么定义? 以上是自定义了一个注解:Component 该注解上面修饰的注解包括:Target注解和Retention注解,

    2024年02月12日
    浏览(44)
  • Spring FrameWork从入门到NB -基于注解配置 & @Autowired注解

    基于注解的配置 其实前面我们已经在基于注解配置了,这是由于个人比较喜欢基于注解配置。 Spring官方文档提过一个问题:基于注解配置要好于基于xml的配置吗?其实各有千秋,根据个人喜好吧。重要的是Spring可以支持基于注解配置,也可以支持基于xml配置文件配置,也可

    2024年02月10日
    浏览(55)
  • 11Spring IoC注解式开发(下)(负责注入的注解/全注解开发)

    负责注入的注解,常见的包括四个: @Value @Autowired @Qualifier @Resource 当属性的类型是简单类型时,可以使用@Value注解进行注入。 @Value注解可以出现在属性上、setter方法上、以及构造方法的形参上, 方便起见,一般直接作用在属性上. 配置文件开启包扫描: 测试程序: 三种方法都可

    2024年01月16日
    浏览(48)
  • spring注解驱动开发(一)

    Spring常用注解(绝对经典) 1、需要导入的spring框架的依赖 2、@Configuration 设置类为配置类 3、AnnotationConfigApplicationContext 通过配置类获取上下文环境applicationContext 可以通过getBeanDefinitionNames()获得配置类中配置的各类Bean 也可以使用getBeanNamesForType()通过类型来获得bean的name(id)

    2024年02月14日
    浏览(38)
  • 【Spring】纯注解开发

            在Spring3.0升级了纯注解开发模式,使用Java类来代替配置文件,开启了Spring快速开发赛道。 @Component         @Service         @Controller         @Repository         使用@Configuration声明一个配置类,使用@ComponentScan来扫描作为bean的类。         最后使用AnnotationConfig

    2024年02月13日
    浏览(29)
  • spring注解驱动开发(二)

    17、Bean的生命周期 bean的生命周期:bean的创建—初始化—销毁的过程 容器负责管理bean的生命周期 我们可以自定义初始化和销毁方法,容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法 构造(对象创建) 单实例:在容器启动时创建对象 多实例:在每

    2024年02月14日
    浏览(39)
  • Spring-注解开发

    一、引子 我们在前面向读者介绍了Spring的配置文件,可以在配置文件中声明Bean,把对象的创建权交给Spring容器,并且实际演示了如何配置一个经典的Bean——数据源的配置。经过实际的上手我们会发现:xml的配置显得有些繁重,于是更便捷的配置方式便应运而生了——注解开

    2024年01月25日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包