对象准备

1.导包

Spring core ,context ,beans ,expression ,aop

Apache commons logging

2.写入一个对象

这边写入User对象

3.书写配置注册对象到容器

位置任意,建议在src下,配置文件名任意,建议叫applicationContext.xml

<?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 ">
<!-- 将User对象交给spring容器管理 -->
<bean name="user" class="com.littlepage.entity.User">
</bean>
</beans>

4.代码测试

//1.创建容器对象
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
//2.向容器"要"User对象
User user = (User)ac.getBean("user");
//3.打印User对象
System.out.println(user);

上述是空参构造方式,还有静态工厂方式,实例工厂等...(仅仅需要了解)

IOC&DI:

Inverse Of Control 控制反转

将我们创建对象的方式反转了

以前对象创建是由开发人员自己维护,包括依赖关系也是自己注入

使用了Spring后,创建对象的方式反转了,对象的创建以及依赖关系可以由Spring创建及注入

从自己创建,变成了转给了程序Spring

Dependency Injection 依赖注入

实现IOC思想需要DI支持

注入方式:

  set方法注入,构造方法注入,属性直接字段注入

注入类型:

  值类型注入(基本类型),引用类型注入(引用类型)

配置文件详解Bean

Bean元素:使用元素描述需要spring容器管理的对象
name属性:给管理的对象起名,获得对象根据该名称获得对象
id属性:与name属性一模一样(名称不可重复,不能使用特殊字符)
结论:建议使用name属性
scope属性:

  singleton:(默认)单例对象

验证:<bean name="user" class="com.littlepage.entity.User"></bean>

public static void main(String[] args) {
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User)ac.getBean("user");
User user2= (User)ac.getBean("user");
System.out.println(user==user2);
}

  打印是true

  prototype:多例,每次创建都是新的对象

验证<bean name="user" class="com.littlepage.entity.User" scope="prototype"></bean>

  运行同样是false

  request:web环境下,对象与request周期一致

  session:与session周期一致

  黄色部分的属性用不到

  

生命周期属性:

init-method="init" destory-method="destory"

需要在实体类添加init和destory的空返回方法

Spring的分模块配置:

<import resource="***.xml">导入其他配置文件,分配置文件

属性注入:

set方法注入(只需要这个):

<bean name="user" class="com.littlepage.entity.User">
<property name="name" value="tom"></property>//值类型
<property name="age" value=""></property>
<property name="car" ref="car"></property>//引用类型
</bean>
<bean name="car" class="com.littlepage.entity.Car">
<property name="name" value="lamborghini"></property>
<property name="color" value="red"></property>
</bean>
</beans>

构造函数注入、p名称空间注入、spel注入

(非常用的方法)

Spring配置搭建——Spring学习 day1的更多相关文章

  1. maven 聚合工程 用spring boot 搭建 spring cloud 微服务 模块式开发项目

    项目的简单介绍: 项目采用maven聚合工程 用spring boot 搭建 spring cloud的微服务 模块式开发 项目的截图: 搭建开始: 能上图 我少打字 1.首先搭建maven的聚合工程 ...

  2. Dive into Spring framework -- 搭建spring 源码的开发环境

    spring是一个类之间依赖的管理容器,大家都知道,但我们中很多人都仅仅停留在使用的层面,但spring本身具有极大的研究价值,所以在使用了几年spring之后,还是想深入的探究一下其根源.记录于此, ...

  3. Springmvc + mybatis + spring 配置,spring事物

    今天配置了半天,发现,事物不起效果,主要出现如下错误: org.mybatis.spring.transaction.SpringManagedTransaction] - [JDBC Connect ...

  4. 【spring配置】——spring整合Quartz定时器

    第一种:为普通java类中的某个方法配置跑批任务 MethodInvokingJobDetailFactoryBean CronTriggerBean SchedulerFactoryBean 1.定 ...

  5. eclipse Spring环境搭建 spring tool suite

    1.期初用intellij社区版,发现收费版才能开发Java EE. 2.使用eclipse按照网上的教程,在help->eclipse marketplace中搜索sts安装spring工具套 ...

  6. spring配置,spring中的bean 的id不能相同

    lib下加入包 spring.jar commons-logging.jar src下添加 applicationContext.xml <?xml version="1.0" ...

  7. Spring 配置自动扫描spring bean配置

    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...

  8. MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql

    目录(?)[-] 一MyBatis简介与配置MyBatisSpringMySql MyBatis简介 MyBatisSpringMySql简单配置 搭建Spring环境 建立MySql数据库 搭建My ...

  9. 从零开始学 Java - 搭建 Spring MVC 框架

    没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...

随机推荐

  1. 百度地图api根据地址获取经纬度

    package com.haiyisoft.cAssistant;import java.io.BufferedReader;import java.io.IOException; import ja ...

  2. leetcode172 阶乘后的零

    对数算法:O(nlogn) /** 即为统计0-n中5,10,15,20,25的个数,因为肯定有足够的偶数使得存在x*5=10*n,25=5*5因此计数加2,5=1*5计数加一: 但如果挨个计数当n很 ...

  3. jenkins docker 发布

    分享下怎么使用jenkins 发布 docker   首先准备docker的相关部分 docker tomcat基础镜像,这边使用centos7做系统,dockerfile如下: #tomcat基础镜 ...

  4. Jmeter(一) - 调用数据的参数化

    1. 做性能测试, 不可避免的一点一定会有使用不同的用户密码进行登陆. 如何使登陆用户参数化呢?

  5. python3.6+RF连接mysql

    接口自动化中会遇到有操作数据库的动作 目录 1.安装第三方库 2.安装pymysql 3.数据库操作 1.安装第三方库 使用在线安装:pip install robotframework_databa ...

  6. unity中的常遇到的问题

    1.使用unity的MovieTexture播放视频在物体上,对象只能在电脑上 2.移动端播放全屏视频 Handheld.PlayFullScreenMovie(),视频文件必须放置在Streamin ...

  7. token防爆破?

    先尝试例如删除token  猜token的值等操作 不行就burp抓包 选择Pitchfork模式.选择要爆破的参数 线程设置为1显然只有获取上一个请求返回的taken值才能,做下一次请求 点击Ref ...

  8. XCode8.3真机调试设置

    本文使用XCode8.3.3 首先XCode->Preferncs,进入下面的界面 点击左下角“+”号,并输入账号,然后点击Manage Certificates,左下角添加IOS develo ...

  9. CentOS7 nginx 最简单的安装以及设置开机启动

    1. 下载tar包. 2. 解压缩tar包 3. 安装必须的部分 yum包 yum install -y gcc pcre pcre-devel openssl openssl-devel gd gd ...

  10. BZOJ 4857 反质数序列

    题面 奇数+奇数一定不是质数(1+1除外),偶数+偶数一定不是质数,质数只可能出现在偶数+奇数中 把所有的点排成两列,权值为奇数的点在左边,权值为偶数的在右边 如果左边的点x+右边的点y是质数,我们就 ...