java45_java45

一、Spring框架概念

1、分层的编程思想--MVC

面向接口(抽象)编程,分层思想的建立,各层相互分离,各司其职。

MVC思想和语言无关

2、框架总体介绍

dao层

MyBatis、Hibernate、Spring Data jpa

bean管理

Spring

controller层

SpringMVC、Structs2

微服务

Dubbo、Spring Cloud

缓存

Redis

二、Spring IOC实例化Bean对象的三种方式

1、构造器方式注意

通过默认构造器创建,空构造必须存在,否则创建失败XML配置

//class中为包名+类名,id为获取Bean对象时的参数

使用

/*** * 1. 加载配置文件 * 2. 获取HelloService的Bean对象,通过id * 3.使用bean * */ ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml"); HelloService hello= (HelloService) context.getBean("helloService"); hello.hello();

2、静态工厂方式注意

要有该工厂类及工厂方法,且工厂方法为静态方法静态工厂定义

public class StaticFactory { public static PersonService getPersonService(){ return new PersonService("cc"); } }XML配置

实例化工厂可以传递参数吗

二、依赖注入

1、名词解释

Spring统一管理对象的创建过程,方便管控

1)、依赖

如果AB两个类,A创建对象需要B先创建,就称A依赖于B,二者存在依赖关系。

2)、注入

假设在A中需要使用B的对象时,从外界创建好传入进来而不是自己创建,这个过程就是注入。

import com.czb.dao.UserDao; public class UserService { private UserDao dao=new UserDao(); //userService 依赖于UserDao public void test() { dao.addUser(); } }

2、依赖注入的类型

1)、set注入xml配置

java类

public class UserService { private UserDao dao; /*set注入*/ public void setDao(UserDao dao) { System.out.println("调用UserService的setDao"); this.dao = dao; } public void test() { dao.addUser(); } public UserService() { } }注意

必须存在set方法,以及空构造

默认选择set注入

只要bean被注入就会发生,不管是否使用,不管在xml文件中位置,都会调用创建好对象并调用set

2)、构造器注入XML配置

java

public class AccountService { private UserDao userDao; //构造器 public AccountService(UserDao userDao) { this.userDao = userDao; } public void print(){ System.out.println("accountService"); userDao.addUser(); } }

3)、静态工厂注入(了解)

被注入对象的创建方式是静态工厂

4)、实例化工厂注入(了解)

被注入对象的创建方式是实例化工厂

3、循环依赖问题

1)、现象:

Bean通过构造器注入,彼此之间存在依赖循环,导致无法实例化

2)、选择

首选set方式,使用set方式注入可以有明确的名称,可以了解被注入的对象是什么

构造器方式注入建立依赖关系容易造成循环依赖,而且关系复杂是互相之间会有影响,在构建函数的时候会有一连串的参数,也不太容易记忆

3)、Spring标签简化配置

p标签

//引入 xmlns:p="http://www.springframework.org/schema/p" //使用

c标签

//引入 xmlns:c="http://www.springframework.org/schema/c" //使用

4、集合注入(了解)

河南烩面

南方臊子面

油泼面

方便面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值