索引、

1、Spring—IOC简介及功能?
2、 来写一个案例(使用配置文件创建对象)
一、使用配置文件来创建对象
二、使用配置文件来给对象的属性赋值(bean装配)。

3、 使用注解来创建对象
4、 其他注解


Spring—IOC简介及功能?

Spring Framework的核心是IoC(Inverstion of Control ,控制反转)容器,IOC容器是一个用于“基于组建的体系结构”的设计模式,它将“判断依赖关系”的职责移交给容器,而不是由组建本身来判断彼此之间的依赖关系。这样依赖就可以大大提高组件的可移植性和可重用性。
简单来说就是使用它来创建对象,实现解耦合。

来写一个案例

一、使用配置文件来创建对象

简单步骤如下:
1、jar包
2、在spring-config.xml 配置(别名applicationContext.xml)
3、获得工厂。获得示例

1、创建一个Spring项目
2、导入jar包
需要的jar包:初识Spring-IOC
初识Spring-IOC
3、在spring-config.xml 配置
初识Spring-IOC
class写 要new的类 id下面说
4、写个测试,获得工厂初识Spring-IOC
①创建一个 ClassPathXmlApplicationContext类 参数写spring-config.xml 路径
②调用getBean方法,来个参数(“userDao”, UserDao.class);参数一:spring-config.xml 里的id 参数二:返回的类对象。
③这里就相当于了 UserDao userDao = new UserdaoImpl(),调用实现类方法hello 就完事了。

二、使用配置文件来给对象的属性赋值(bean装配)。

1、在spring-config.xml 配置

2、不同赋值对象
①直接给属性赋值、使用value:
i:给String或者int赋值
初识Spring-IOC
ii还可以给数组设置
初识Spring-IOC
iii给map类的属性赋值
初识Spring-IOC
iiii 给实体类dog赋值,(先给dog类实体bean赋值)
初识Spring-IOC
iiiii 通过构造器赋值
初识Spring-IOC

②给属性赋一个引用类型的值、使用ref
初识Spring-IOC
ref :映射的类 property name :属性名,对应下面声明的UserDao
初识Spring-IOC
相当于: UserDao userDao =new UserDaoImpl2();

三、 使用注解来创建对象

简单步骤如下:
1、jar包
2、在spring-config.xml 配置扫描范围
3、编写注解
4、获得工厂。获得示例

1、需要再额外添加一个jar包
初识Spring-IOC
2、扫描,路径下的文件才可以使用注解
初识Spring-IOC
3、使用注解创建对象

①在类的头上使用注解

还记得配置文件怎么创建的吗?
初识Spring-IOC写一个test测试:初识Spring-IOC
结果:初识Spring-IOC

有点麻烦!不写id会怎么样?
强大的框架也能正常工作,但是getBean里的id填写谁??
不用担心,IOC给了一个默认id,就是把类名字母小写 作为id
初识Spring-IOC

②给bean装配对象,根据name值查找装配的对象。

初识Spring-IOC指着userdao,按下Alt+Enter 可以看出引用的是
初识Spring-IOC

③给bean装配对象,使用默认值查找装配的对象。

如果不填写name值呢? IOC 会自动查找它的实现类并且装配
如果它存在多个实现类呢??比如有两个,可以在要装配的实现类头上标@Primary
实例:初识Spring-IOC
初识Spring-IOC
测试一下:初识Spring-IOC
结果:初识Spring-IOC
实际开发还可能把@ Resource 拆分成 @ AutoWired 和 @ Qulifier
@ AutoWired
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。
@ Qulifier
用来指定引用实体的id。

其实@Component是所有受Spring 管理组件的通用形式,web、Service、Dao 的@Component不推荐使用

常用注解

①三层架构的创建对象注解

把@Component拆分成3层

①、@Controller对应表现层的Bean,也就是Action,这个注解非常有用,用来声明我们之前经常写的.xxxCenerServlet,待我们学完Spring-mvc框架或者Structs2框架就懂了

②、@Service
@Service对应的是业务层Bean

③、@ Repository
@Repository对应数据访问层
这些注解的作用:https://tomfish88.iteye.com/blog/1497557

bean装配注解

@ Resource
@ AutoWired
@ Qulifier

其他注解

√@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。 √
@Lazy(true) 表示延迟初始化
@Scope注解 作用域 用于指定scope作用域的(用在类上)
@PostConstruct用于指定初始化方法(用在方法上)
@PreDestory用于指定销毁方法(用在方法上)
√@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常 √
@PostConstruct 初始化注解
@PreDestroy 摧毁注解
@Async异步方法调用

相关文章:

  • 2021-06-22
  • 2021-09-13
  • 2022-02-13
  • 2021-08-13
  • 2022-01-03
  • 2022-12-23
  • 2022-12-23
  • 2021-04-12
猜你喜欢
  • 2021-10-16
  • 2021-05-31
  • 2022-12-23
  • 2021-12-20
  • 2021-09-27
  • 2021-12-25
相关资源
相似解决方案