文档章节

spring框架

architect刘源源
 architect刘源源
发布于 06/11 18:37
字数 776
阅读 36
收藏 0

DI的解释:

https://www.cnblogs.com/xdp-gacl/p/4249939.html

学生类Student属性中加了Teacher,设计时,多的一方上引入少的一方的主键或者属性

package com.atguigu.spring.di;

public class Student {

	private Integer id;
	
	private String name;
	
	private Integer age;
	
	private String sex;
	
	private Double score;
	
	private Teacher teacher;
	
	public Teacher getTeacher() {
		return teacher;
	}

	public void setTeacher(Teacher teacher) {
		this.teacher = teacher;
	}


	public Double getScore() {
		return score;
	}

	public void setScore(Double score) {
		this.score = score;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", score=" + score
				+ ", teacher=" + teacher + "]";
	}

	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Student(Integer id, String name, Integer age, String sex) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	
	public Student(Integer id, String name, Double score, String sex) {
		this.id = id;
		this.name = name;
		this.score = score;
		this.sex = sex;
	}
	
}

ref 应用于spring管理范围内的某个bean的id 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

	<!-- 
		scope:设置bean的作用域
		scope="singleton|prototype|request|session"
		singleton:单例,唯一实例
		prototype:原型,多例
		request:在一次请求中创建一个bean
		session:在一次会话中创建一个bean
	 -->
	<bean id="emp" class="com.atguigu.spring.scope.Emp" scope="prototype">
		<property name="id" value="1001"></property>
		<property name="name" value="张三"></property>
	</bean>

</beans>
package com.atguigu.spring.scope;

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

public class Test {

	public static void main(String[] args) {
		
		ApplicationContext ac = new ClassPathXmlApplicationContext("scope.xml");
		Emp emp1 = ac.getBean("emp", Emp.class);
		Emp emp2 = ac.getBean("emp", Emp.class);
		System.out.println(emp1.equals(emp2));
		
	}
	
}

Spring容器默认为单例,那么这个怎么解释呢?

package com.atguigu.spring.di;

public class Student {

	private Integer id;
	
	private String name;
	
	private Integer age;
	
	private String sex;
	
	private Double score;
	
	private Teacher teacher;
	
	public Teacher getTeacher() {
		return teacher;
	}

	public void setTeacher(Teacher teacher) {
		this.teacher = teacher;
	}


	public Double getScore() {
		return score;
	}

	public void setScore(Double score) {
		this.score = score;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	/*@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", score=" + score
				+ ", teacher=" + teacher + "]";
	}*/

	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Student(Integer id, String name, Integer age, String sex) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	
	public Student(Integer id, String name, Double score, String sex) {
		this.id = id;
		this.name = name;
		this.score = score;
		this.sex = sex;
	}
	
}
package com.atguigu.spring.di;

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

public class Test {

	public static void main(String[] args) {
		
		ApplicationContext ac = new ClassPathXmlApplicationContext("beans-di.xml");
		Student s1 = ac.getBean("s1", Student.class);
		System.out.println(s1);
		Student s2 = ac.getBean("s2", Student.class);
		System.out.println(s2);
		Student s3 = ac.getBean("s3", Student.class);
		System.out.println(s3);
		Student s4 = ac.getBean("s4", Student.class);
		System.out.println(s4);
		Student s5 = ac.getBean("s5", Student.class);
		System.out.println(s5);
		Student s6 = ac.getBean("s6", Student.class);
		System.out.println(s6);
		Teacher t1 = ac.getBean("t1", Teacher.class);
		System.out.println(t1);
		Teacher t2 = ac.getBean("t2", Teacher.class);
		System.out.println(t2);
		Teacher t3 = ac.getBean("t3", Teacher.class);
		System.out.println("t3:"+t3);
		Teacher t4 = ac.getBean("t4", Teacher.class);
		System.out.println(t4);
		
		
	}
	
}

为什么打印的地址值不一样呢?

package com.atguigu.spring.mod;

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

public class TestBySpring {

	public static void main(String[] args) {
		
		//初始化容器
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		//通过getBean()获取对象
		//Person person = (Person)ac.getBean("person");
		//使用此方法获取对象时,要求spring所管理的此类型的对象只能有一个
		Person person = ac.getBean(Person.class);
		//Person person = ac.getBean("personTwo", Person.class);
		System.out.println(person);
		
		
	}
	
}

Student.class.newInstance()调用的是无参构造,如果没有无参构造会报错

错误如下

© 著作权归作者所有

architect刘源源

architect刘源源

粉丝 167
博文 555
码字总数 935372
作品 0
浦东
程序员
私信 提问
spring boot框架学习7-spring boot的web开发(3)-自定义消息转换器

http://kaigejava.com/article/list?cateid=3 本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用。spring boot企业级框架,那么spring boot怎么读取静态资源?如...

中凯_凯哥java
2017/11/09
43
0
spring boot框架学习4-spring boot核心(3)

本节主要: 1:spring boot 为我们提供的 starter pom 都有哪些 2:怎么添加xml配置文件 3:日志相关 本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中第四篇 spring boot框架学习...

中凯_凯哥java
2017/10/31
248
0
spring boot框架学习5-spring boot的web开发(1)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用。spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定...

中凯_凯哥java
2017/11/01
444
0
spring boot框架学习12-spring boot整合active mq方法1

本章节主要内容: 主要从以下几个方面讲解: mybatis和spring boot整合、redis(单机版)和spring boot整合、redis(集群)和spring boot整合、httpclient和spring boot整合、rabbitMQ/active M...

中凯_凯哥java
2017/12/10
43
0
好程序员java分享spring框架精讲

1、什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员...

好程序员IT
05/27
11
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部