spring第三篇

在昨天下午更新sprin第二篇中,叙述了将对象交给spring创建和管理,今天在spring第三篇中,主要写两个点一是spring的思想 二是spring中bean元素的属性配置。

1 spring思想

1.1 IOC(Inverse of  Control) :控制反转,将对象的创建权交给了 Spring.

1.2  DI :Dependency Injection 依赖注入.需要有IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依赖的属性设置进去. 实现IOC 需要DI做支持,在注入方式上有set注入

构造函数注入  字段注入  其中set注入是最常用的,构造函数相对来说用的也相对较多。

2 spring 配置详解

2.1 bean元素的配置

clas属性 :被管理对象的完整类名

name属性:需要给被管理对象起一个名字 可以重复

id属性:与name属性一模一样 但是名字不可以重复  建议使用name属性

建立User和Plane两个类(分别有名字年龄以及名字和颜色的属性   生成get和set  同时生成toString方法)---》代码省略

配置代码如下:

<?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"                  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
  <bean name="user" class="com/lijun/Demo/User.java"></bean>
</beans>

同时bean元素还可以配置scope 属性   scope的默认值为sigleton ----->单例表示spring容器中只会存在一个实体

配置文件如下

<bean name="user" class="bean.User"></bean>

测试代码如下:

package demo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import bean.User;

public class Demo {
@Test
public void fun1(){
ApplicationContext ac = new ClassPathXmlApplicationContext("NewFile.xml");
User u = (User)ac.getBean("u");
User u1 = (User)ac.getBean("u");
System.out.println(u==u1);
}
}   结果为true

当配置文件为:<bean name="u" class="bean.User" scope="prototype"></bean>

测试代码不变   结果为false

原文地址:https://www.cnblogs.com/lijun6/p/10344425.html

时间: 2024-07-29 08:25:39

spring第三篇的相关文章

初学Java ssh之Spring 第三篇

在这篇中,我学习了依赖注入的两种方式:设值注入和构造注入. 在我们以前的思维中,如果调用一个类时,我们都需要将其手动实例化,当我们创建被调用的工作不需要我们完成时,这就是控制反转,当这个将被调用的实例过程被Spring完成,并注入调用者时,这就是依赖注入. 一.先来学习学习设值注入: 我们先来新建两个接口规范,分别命名为Computer.java 和 Key.java,其路径均在com.sep.basic.service包下: Computer.java代码如下: 1 package com.s

Spring第四篇

在spring第三篇中介绍了bean元素属性 在第四篇中介绍spring注入的方式 1 set方法注入 建立一个User类 创建私有的属性 set  get 方法  重写toString方法 代码如下: package bean; public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) {

Spring Cloud第三篇 | 搭建高可用Eureka注册中心

? ?本文是Spring Cloud专栏的第三篇文章,了解前两篇文章内容有助于更好的理解后面文章: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cloud第二篇 | 使用并认识Eureka注册中心 ? 一.Eureka注册中心高可用集群概述 1-1.传统架构 在微服务架构的这种分布式系统中,我们要充分考虑各个微服务组件的高可用性问题,不能有单点故障,由于注册中心Eureka本身也是一个服务,如果它只有一个节点,那么它有可能发生故障,这样我们

构建微服务:Spring boot 入门篇

构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适). 使用spring boot有什

白话Spring(中级篇)---拦截器(下)

[一知半解,就是给自己挖坑] 上文我们介绍了Spring中过滤器的基本用法,本文我们来介绍多个拦截器的执行情况,另外一种拦截器的实现方式,以及拦截器与java过滤器的区别.特别的,在本文中,我们将不在演示具体的拦截的实例,请读者们参照上文的实现以及配置方式自行实现. --------------------------------------------------------------------------------------------------------------------

spring学习(三) ———— spring事务操作

前面一篇博文讲解了什么是AOP.学会了写AOP的实现,但是并没有实际运用起来,这一篇博文就算是对AOP技术应用的进阶把,重点是事务的处理. --wh 一.jdbcTemplate 什么是JdbcTemplate? spring提供用于操作数据库模版,类似Dbutils,通俗点讲,我们操作数据库,spring也会帮我们提供一个操作数据库的工具供我们使用,而不用我们自己手动编写连接数据库,获取结果集等等操作,这个工具就是JdbcTemplate.跟Dbutils一样,想要使用JdbcTemplate

ELK统一日志管理平台第三篇-logstash grok插件的使用

1. ELK统一日志管理平台第三篇-logstash grok插件的使用   在本篇博文中,主要讲解如下几个知识点和实践经验,供大家参考:   1. 关于JAVA应用程序的日志内容标准规范:   2. 如何使用logstash的grok插件来完成message字段的拆分:   3. 定时删除Es的索引: 1. 关于JAVA应用程序的日志内容标准规范:   最近公司一直在主推ELK这个项目,而我是ELK这个项目的运维人员.所以针对ELK项目会有很多经验输出:由于我们公司的业务系统以JAVA语言开发

Spring Cloud第二篇 | 使用并认识Eureka注册中心

? 本文是Spring Cloud专栏的第二篇文章,了解前一篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 ?? 一.SpringCloud快速开发入门 SpringCloud是构建在SpringBoot基础之上的 1.创键一个服务提供者(springcloud-service-provider) 1-1.创键提供者类 @RestController @RequestMapping("/provider") pub

跟我学习SpringCloud 教程第三篇:注册中心集群篇-b2b2c小程序电子商务

集群环境搭建?了解springcloud架构可以加求求:三五三六二四七二五九第一步:我们新建两个注册中心工程一个叫eureka_register_service_master.另外一个叫eureka_register_service_backup eureka_register_service_master的application.properties配置如下?server.port=7998 eureka.client.register-with-eureka=false eureka.cli