Spring配置搭建——Spring学习 day1
对象准备
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的更多相关文章
- maven 聚合工程 用spring boot 搭建 spring cloud 微服务 模块式开发项目
项目的简单介绍: 项目采用maven聚合工程 用spring boot 搭建 spring cloud的微服务 模块式开发 项目的截图: 搭建开始: 能上图 我少打字 1.首先搭建maven的聚合工程 ...
- Dive into Spring framework -- 搭建spring 源码的开发环境
spring是一个类之间依赖的管理容器,大家都知道,但我们中很多人都仅仅停留在使用的层面,但spring本身具有极大的研究价值,所以在使用了几年spring之后,还是想深入的探究一下其根源.记录于此, ...
- Springmvc + mybatis + spring 配置,spring事物
今天配置了半天,发现,事物不起效果,主要出现如下错误: org.mybatis.spring.transaction.SpringManagedTransaction] - [JDBC Connect ...
- 【spring配置】——spring整合Quartz定时器
第一种:为普通java类中的某个方法配置跑批任务 MethodInvokingJobDetailFactoryBean CronTriggerBean SchedulerFactoryBean 1.定 ...
- eclipse Spring环境搭建 spring tool suite
1.期初用intellij社区版,发现收费版才能开发Java EE. 2.使用eclipse按照网上的教程,在help->eclipse marketplace中搜索sts安装spring工具套 ...
- spring配置,spring中的bean 的id不能相同
lib下加入包 spring.jar commons-logging.jar src下添加 applicationContext.xml <?xml version="1.0" ...
- Spring 配置自动扫描spring bean配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
目录(?)[-] 一MyBatis简介与配置MyBatisSpringMySql MyBatis简介 MyBatisSpringMySql简单配置 搭建Spring环境 建立MySql数据库 搭建My ...
- 从零开始学 Java - 搭建 Spring MVC 框架
没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...
随机推荐
- 统计学_F分布(图文详解和python脚本实现)
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...
- WikiData Processing
WikiData Processing Data Accessing To download latest-all.json.bz2 on the page https://dumps.wikimed ...
- 在 manifest 和代码中如何注册和使用 BroadcastReceiver?
在清单文件中注册广播接收者称为静态注册,在代码中注册称为动态注册.静态注册的广播接收者只要 app 在系统中运行则一直可以接收到广播消息,动态注册的广播接收者当注册的 Activity 或者 Serv ...
- 【5】标题上的小logo
<link rel="shortcut icon" href="logo图片的路径"> shortcut --- 捷径,近路 icon --- ...
- cento7忘记root密码怎么办
1.首先开启系统,一直按 e 键 进入编辑选项 2.光标下移,在UTF-8行这一段修改两处,首相找到ro改为rw,即只读改为可读写权限:然后在这段的尾部加入 init=/bin/sh 3.此时按住Ct ...
- .on()之selector——jQuery
API:[https://www.jquery123.com/on/]
- MySQL:添加用户、删除用户、授权、远程访问、修改密码
1.创建用户 #test表示你要建立的用户名,后面的123456表示密码, #localhost限制在固定地址localhost登陆 CREATE USER test@localhost IDENTI ...
- django.db.migrations.exceptions.BadMigrationError: Migration tests in app bl
这个错误基本上都是 替换文件后才会出现的问题 因为你替换后他的日志文件没有完全替换的话,那么日志对应不到就会出现这样的问题, 一个模糊的处理办法:重新进行数据迁移:首先删除migrations中除去_ ...
- 双系统正确卸载Ubuntu系统
双系统正确卸载Ubuntu系统 安装系统后由于显卡驱动问题,无法开机,从而只能卸载重装,重装过程如下. 第一步:下载需要的工具包,这里我用的是MBRfix, 可以直接从我分享的网盘链接下载,密码gw ...
- 【神经网络与深度学习】【Matlab开发】caffe-windows使能Matlab2015b接口
[神经网络与深度学习][Matlab开发]caffe-windows使能Matlab2015b接口 标签:[神经网络与深度学习] [Matlab开发] 主要是想全部来一次,所以使能了Matlab的接口 ...