Spring-temp

IOC/DI实现步骤

             1.配置元数据

             2.实例化IOC

             3.获取Bean

基于XML配置方式

       管理组件

                1.基于构造函数:有参、无参

                2.基于静态工厂方法:有参、无参

       依赖注入

                  1.构造函数

                  2.setter方法

       Bean组件高级特性

                    1.作用域

                    2.生命周期

        FactoryBean

基于注解

IOC

Bean作用域与生命周期注解

 DI自动组装(引用类型)

@Resource @Resource

基本类型DI @Value注解

基于配置类方式 

XML与配置类: 

 

@Bean注解细节 

Bean之间依赖

 

//注解类
@Configuration
@ComponentScan(basePackages = "com.atguigu")
@PropertySource("classpath:jdbc.properties")
public class JavaConfig {

    @Value("${atguigu.url}")
    private String url;
    @Value("${atguigu.driver}")
    private String driver;
    @Value("${atguigu.username}")
    private String username;
    @Value("${atguigu.password}")
    private String password;

    @Bean(destroyMethod = "close")
    public DruidDataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);
        dataSource.setDriverClassName(driver);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }

    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource){
        JdbcTemplate jdbcTemplate = new JdbcTemplate();
        jdbcTemplate.setDataSource(dataSource);
        return jdbcTemplate;
    }

}
//XML   
 <context:property-placeholder location="classpath:jdbc.properties" />

    <!-- 配置数据源 -->
    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="${atguigu.url}"/>
        <property name="driverClassName" value="${atguigu.driver}"/>
        <property name="username" value="${atguigu.username}"/>
        <property name="password" value="${atguigu.password}"/>
    </bean>

    <bean class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="druidDataSource" />
    </bean>

    <!-- 扫描Ioc/DI注解 -->
    <context:component-scan base-package="com.atguigu.dao,com.atguigu.service,com.atguigu.controller" />

</beans>

 三种配置方式总结

 

BeanFactory解析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/250806.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python如何匹配库的版本

目录 1. 匹配库的版本 2. Python中pip&#xff0c;库&#xff0c;编译环境的问题回答总结 2.1 虚拟环境 2.2 pip&#xff0c;安装库&#xff0c;版本 1. 匹配库的版本 &#xff08;别的库的版本冲突同理&#xff09; 在搭建pyansys环境的时候&#xff0c;安装grpcio-tools…

加权准确率WA,未加权平均召回率UAR和未加权UF1

加权准确率WA&#xff0c;未加权平均召回率UAR和未加权UF1 1.加权准确率WA&#xff0c;未加权平均召回率UAR和未加权UF12.参考链接 1.加权准确率WA&#xff0c;未加权平均召回率UAR和未加权UF1 from sklearn.metrics import classification_report from sklearn.metrics impor…

Python中的程序逻辑经典案例详解

我的博客 文章首发于公众号&#xff1a;小肖学数据分析 Python作为一种强大的编程语言&#xff0c;以其简洁明了的语法和强大的标准库&#xff0c;成为了理想的工具来构建这些解决方案。 本文将通过Python解析几个经典的编程问题。 经典案例 水仙花数 问题描述&#xff1a…

三勾商城新功能-电子面单发货

商家快递发货时可以选择在线下单,在线获取和打印电子面单。免去手写面单信息以及避免填写运单号填错,系统会自动填写对应发货商品的运单信息 快递100电子面单1、进入快递100&#xff0c;点击登录 2、登录成功后&#xff0c;点击“电子面单与云打印” 3、进入电子面单与云打印后…

Druid-spring-boot-starter源码阅读-其余组件自动装配

前面我们看完了整个DruidDataSource初始化流程&#xff0c;但是其实Druid除了最核心的数据源之外&#xff0c;还有其他需要自动配置的&#xff0c;细心的人可能看到了&#xff0c;就是利用Import注解导入的四个类。 DruidFilterConfiguration public class DruidFilterConfigu…

解决:TypeError: write() argument must be str, not tuple

解决&#xff1a;TypeError: write() argument must be str, not tuple 文章目录 解决&#xff1a;TypeError: write() argument must be str, not tuple背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在使用之前的代码时&#xff0c;报错&…

缓存的定义及重要知识点

文章目录 缓存的意义缓存的定义缓存原理缓存的基本思想缓存的优势缓存的代价 缓存的重要知识点 缓存的意义 在互联网高访问量的前提下&#xff0c;缓存的使用&#xff0c;是提升系统性能、改善用户体验的唯一解决之道。 缓存的定义 缓存最初的含义&#xff0c;是指用于加速 …

联邦边缘学习中的知识蒸馏综述

联邦边缘学习中的知识蒸馏综述 移动互联网的快速发展伴随着智能终端海量用户数据的产生。如何在保护数据隐私的前提下,利用它们训练出性能优异的机器学习模型,一直是业界关注的难点。为此,联邦学习应运而生,它允许在终端本地训练并协同边缘服务器进行模型聚合来实现分布式机器…

下午好~ 我的论文【yolo1~4】(第二期)

写在前面&#xff1a;本来是一期的&#xff0c;我看了太多内容了&#xff0c;于是分成三期发吧 TAT &#xff08;捂脸&#xff09; 文章目录 YOLO系列v1v2v3v4 YOLO系列 v1 You Only Look Once: Unified, Real-Time Object Detection 2015 ieee computer society 12.3 CCF-C…

网站提示“不安全”

当你在浏览网站时&#xff0c;有时可能会遇到浏览器提示网站不安全的情况。这通常是由于网站缺乏SSL证书所致。那么&#xff0c;从SSL证书的角度出发&#xff0c;我们应该如何解决这个问题呢&#xff1f; 首先&#xff0c;让我们简单了解一下SSL证书。SSL证书是一种用于保护网站…

论文阅读——Semantic-SAM

Semantic-SAM可以做什么&#xff1a; 整合了七个数据集&#xff1a; 一般的分割数据集&#xff0c;目标级别分割数据集&#xff1a;MSCOCO, Objects365, ADE20k 部分分割数据集&#xff1a;PASCAL Part, PACO, PartImagenet, and SA-1B The datasets are SA-1B, COCO panopt…

Grafana Loki 快速尝鲜

Grafana Loki 是一个支持水平扩展、高可用的聚合日志系统&#xff0c;跟其他的聚合日志系统不同&#xff0c;Loki只对日志的元数据-标签进行索引&#xff0c;日志数据会被压缩并存储在对象存储中&#xff0c;甚至可以存储在本地文件系统中&#xff0c;能够有效降低成本&#xf…

Python基础09-学生管理系统

零、文章目录 Python基础09-学生管理系统 1、学员管理系统功能概述 &#xff08;1&#xff09;最终效果图 &#xff08;2&#xff09;功能概述 需求&#xff1a;进入系统显示系统功能界面&#xff0c;功能如下&#xff1a; 【1】添加学员信息->add_student【2】删除学员…

Python基础01-环境搭建与输入输出

零、文章目录 Python基础01-环境搭建与输入输出 1、Python概述 &#xff08;1&#xff09;为什么要学习Python 技术趋势&#xff1a;Python自带明星属性&#xff0c;热度稳居编程语言界前三 简单易学&#xff1a;开发代码少&#xff0c;精确表达需求逻辑&#xff1b;33个关…

SDN之Python编程创建多数据中心网络

文章目录 1.拓扑结构2.具体步骤 1.拓扑结构 通过python编程创建一个包含2台核心交换机、4台汇聚交换机、8台边缘交换机和16台主机的网络拓扑&#xff0c;如图示&#xff1a; 2.具体步骤 首先ctrlaltT&#xff08;或右键&#xff09;打开终端&#xff0c;在/home/shy/minine…

关于学习计算机的心得与体会

也是隔了一周没有发文了&#xff0c;最近一直在准备期末考试&#xff0c;后来想了很久&#xff0c;学了这么久的计算机&#xff0c;这当中有些收获和失去想和各位正在和我一样在学习计算机的路上的老铁分享一下&#xff0c;希望可以作为你们碰到困难时的良药。先叠个甲&#xf…

Ansys Lumerical | 采用一维光栅的出瞳扩展器的优化

附件下载 联系工作人员获取附件 本文演示了一种仿真方法&#xff0c;并举例说明了使用一维光栅的出瞳扩张器&#xff08;EPE&#xff09;系统的优化示例。 在此工作流程中&#xff0c;我们使用 Lumerical 构建光栅模型&#xff0c;并使用 RCWA 求解器模拟其响应。完整的EPE系…

云演CTF Blog

1、啥也搞不了&#xff0c;扫目录。出来个console 2、有显示锁掉了 3、抓包&#xff0c;改返回包 改成true&#xff0c;放包 不好意思&#xff0c;不会了&#xff0c;哈哈哈哈哈哈哈哈哈 你会的话&#xff0c;请告诉我&#xff0c;大佬

MyBatis问题记录

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 原因&#xff1a;标注了MapperScan 在 Spring Boot 中&#xff0c;MapperScan 注解用于扫描 MyBatis Mapper 接口的包路径&#xff0c;并将其注册为 Spring Bean。在一些简单的情况下&…

基于SSM的图书馆预约座位系统的设计与实现(部署+源码+LW)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SSM的图书馆预约座位…