首页 > 其他分享 >数据源开发步骤; 数据源(连接池)的作用; IOC与DI的理解; 怎么把UserDao注入到UserService内部呢?spring重点配置; Bean实例化三种方式,Bean的依赖注入的概念;

数据源开发步骤; 数据源(连接池)的作用; IOC与DI的理解; 怎么把UserDao注入到UserService内部呢?spring重点配置; Bean实例化三种方式,Bean的依赖注入的概念;

时间:2022-11-08 22:36:50浏览次数:57  
标签:对象 数据源 json Bean 实例 spring 注入


数据源开发步骤

1、导入数据源的坐标和数据库驱动坐标

2、创建数据源对象

3、设置数据源的基本连接数据

4、使用数据源获取连接资源和归还连接资源

数据源(连接池)的作用

1、提高程序性能

2、事先实例化数据源,初始化部分连接资源

3、使用连接资源时从数据源中获取

4、使用完毕后连接资源归还给数据源

目前常用的数据源主要有c3p0、dbcp、proxool、druid
Spring 推荐使用dbcp;DBCP(DataBase connection pool)数据库连接池。Hibernate 推荐使用c3p0和proxool

IOC与DI的理解

IOC控制反转,不是一种技术,是一种思想。将设计好的对象交给容器去控制,不是直接new一个对象

IoC 容器控制了对象,主要控制了外部资源获取(不只是对象包括比如文件等)

有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。

DI依赖注入

应用程序依赖于IoC容器

IoC和DI由什么关系呢?其实它们是同一个概念的不同角度描述

同步该文章

怎么把UserDao注入到UserService内部呢?spring重点配置


1.5怎么把UserDao注入到UserService内部呢?

1、构造方法

2、set方法

1.6注入数据的三种数据类型

1、普通数据类型

2、引用数据类型

3、集合数据类型

1.7spring重点配置

标签
id属性:在容器中Bean实例的唯一标识,不允许重复
class属性:要实例化的Bean的全限定名
scope属性:Bean的作用范围,常用是Singleton(默认)(一个对象)和prototype(多个)
默认Bean实例化个数为1,protoype个数为2
标签:属性注入
name属性:属性名称
value属性:注入的普通属性值
ref属性:注入的对象引用值
标签


Bean实例化三种方式,Bean的依赖注入的概念

1.3Bean实例化三种方式(*)

1/无参构造方法实例化

2、工厂静态方法实例化

3、工厂实例方法实例化

1.4Bean的依赖注入的概念

依赖注入(Dependency Injection)是核心IOC的具体实现

在编写程序的时候,通过控制反转,把对象的创建交给Spring去管理,把UserService、UserDao都当成容器来有效管理。

就是解决我们的耦合问题,

但是代码中不可能出现没有依赖的情况。IOC 解耦只是降低他们的依赖关系,但不会消除。例如:业务层仍会调用持久层的方法。

好处:易于维护,让框架吧dao层对象传入到service,不用手动去获取

spring是什么,spring优势是什么

1.1 spring是什么

spring是分层javase/ee应用的轻量级的开源框架,两个重要的特性是loc(Inverse of contol 反转控制)和AOP(面向切面编程)

1.2 spring的优势

1、方便解耦,简化开发

主要强调spring能提供IoC容器,可以将对象间的依赖关系交给Spring进行控制,避免了原来编码的耦合问题

2、AOP编程的支持

面向切面编程可以处理OOP面向对象编程的不足

3、声明式事务的支持

事务管理,开发效率

4、方便程序的测试

更边界的测试解决方案

5、方便集成各类框架

与Hibernate----》ssh

mabtis---->ssm

还有Struts/Hessian/Quartz等等各类的支持

6、降低了javaEE API的使用难度

把API封装起来,更方便使用

从有jdbc模板—》redis

Filter

ThreadLocal的使用

ThreadLocal的作用,它可以解决多线程的数据安全问题

它可以给当前线程关联一个数据

使用Filter和ThreadLocal组合管理事务

JSON

1、json的定义

JSON是JavaScript Object Notation,是一种轻量级的数据交换格式。

轻量级是什么?

指的是跟xml做比较,比xml更小,更快,更易解析

数据交换是客户端和服务器之间业务数据的传递格式

2、json的用法

var xxx = {
“key”:value,
};

[]保存数组

键值对构成

3、json存在的两种形式

是json对象 和 json字符串

两个常用的方法

JSON.stringify() 把json对象转换成为json字符串

JSON.parse() 把json字符串转换成为json对象

Java 枚举(enum)

Java 枚举(enum)

Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天等。

enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口。

values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:

values() 返回枚举类中所有的值。

ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。

valueOf()方法返回指定字符串值的枚举常量。


标签:对象,数据源,json,Bean,实例,spring,注入
From: https://blog.51cto.com/u_14604401/5834990

相关文章

  • @ConditionalOnBean不起作用
    结论1,Spring是先处理配置类,再加载Bean的,所以不要@ConditionalOnBean和@Configuration一起用;2,使用@AutoConfigureAfter指定@Configuration的先后初始化顺序;参考内容......
  • dotnet6 nlog依赖注入和数据库写入
    aspnetcore6,自身携带的四种Loggingproviders:Console/Debug/EventSource/EventLog(Windowsonly)Loggingproviders-.NET|MicrosoftLearn功能有限,使用专业性更强......
  • mybatis数据源单一
    1.打包方式jar包1.导入依赖<dependencies><!--Mybatis核心--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</v......
  • Spring的IoC容器之BeanFactory
    SpringIoC容器之BeanFactory首先,Spring提供了两种容器类型:BeanFactory和ApplicationContext。BeanFactory:基础容器类型,提供了完整的IoC服务支持。默认采用延迟......
  • Java解决单机环境下多数据源的事务问题
    springboot单机环境下的@Transictional可以保证事务,但多数据源的情况就无法使用了,这里简单实现一下多数据源的情况下如何保证事务。一,事务实现方案利用ThreadLocal将事......
  • IDEA @AutoWired注入bean 出现红色波浪线
    出现此问题只是idea自身检测的问题,这不是bug,不影响项目运行。去除该情况的红色波浪线:  ......
  • idea中配置本地postgresql数据源
    pom.xml文件中新增<!--postgresql数据库配置--><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.2.18</version......
  • Mybatis下的SQL注入
    Mybatis概述mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement......
  • 使用@ConfigurationProperties运行后报错 Error create bean
    注意配置文件声明的属性要和yml中自定义的属性名要相同 yml配置文件:  ......
  • spring 依赖注入
    1.几种注入方式的对比基于field注入的坏处成也萧何败也萧何基于field注入虽然简单,但是却会引发很多的问题。这些问题在我平常开发阅读项目代码的时候就经常遇见......