整理入门笔记_Spring
来源:互联网 发布:淘宝类目分析模板 编辑:程序博客网 时间:2024/06/11 13:08
Spring快速笔记XML篇
Spring的概念:
个人理解,Spring就是一个大大的容器,解决了类与类之间的关联依赖的同时提高了解
耦合性,省去了各种复杂且重复单调的代码,又可以理解成一个万能的工厂。
Spring最简单的应用:
Jar包:
com.springsource.org.apache.commons.logging-1.1.1.jar //依赖包
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
XML头:
ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="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">
<!—配置区域 -->
</beans>
例如,编写Student类
public class Student {
private String name;
private int age;
public StringgetName() {
return name;
}
public voidsetName(String name) {
this.name =name;
}
public int getAge() {
return age;
}
public void setAge(intage) {
this.age =age;
}
@Override
public StringtoString() {
return"Student [name=" + name + ", age=" + age + "]";
}
}
XML中,配置区域内这样写
<!-- 配置一个简单的学生Bean -->
<beanid="student" class="com.aiyi.bean.Student"></bean>
测试:
@Test
public void Test(){
//初始化XML
ApplicationContextapplication =
newClassPathXmlApplicationContext("ApplicationContext.xml");
//获取Bean
Studentstudent = (Student) application.getBean("student");
//使用Bean的方法
student.setAge(18);student.setName("海大仙");
System.out.println(student); //Student [name=海大仙, age=18]
}
依赖注入(一个类中包含另一个类)
创建MyBean类:
public class MyBean {
private Studentstudent; //这个类中依赖Student这个类
public StudentgetStudent() {
returnstudent;
}
public voidsetStudent(Student student) { //提供set方法
this.student= student;
}
@Override
public StringtoString() {
return"MyBean [student=" + student + "]";
}
}
XML:
<!-- 配置一个简单的学生Bean -->
<beanid="student" class="com.aiyi.bean.Student"></bean>
<!-- 再配置一个Bean,把学生注入进去 -->
<beanid="myBean" class="com.aiyi.bean.MyBean">
<propertyname="student" ref="student"></property>
</bean>
测试:
@Test
public void test1() {
//初始化XML
ApplicationContextapplication =
newClassPathXmlApplicationContext("ApplicationContext.xml");
MyBean bean= (MyBean)application.getBean("myBean");
System.out.println(bean); //MyBean [student=Student[name=null, age=0]]
}
工厂Bean(整合其他框架或者使用已存在的工厂)
假设Student是通过如下工厂创建的:
public class StudentFactory {
public StudentgetStudent(){ //获取Student的方法
return newStudent();
}
}
XML:
<!-- 先配置这个工厂 -->
<bean id="myFactory"class="com.itheima.bean.StudentFactory"></bean>
<!-- 配置Student,通过工厂 -->
<beanid="myStudent" factory-bean="myFactory"factory-method="getStudent">
</bean>
测试:
@Test
public void Test2(){
//初始化XML
ApplicationContextapplication =
newClassPathXmlApplicationContext("ApplicationContext.xml");
//直接调用getBean,Spring会自动用工厂创建并返回给你
Studentstudent = (Student) application.getBean("myStudent");
//使用Bean的方法
student.setAge(18);student.setName("海大仙");
System.out.println(student); //Student [name=海大仙, age=18]
}
设置Bean的作用域
Scope:
读音:死狗扑
翻译:范围
在ApplicationContext.xml配置bean的时候,可以添加一个scope属性,他的作用就是设置这个bean的范围
<bean id="myFactory"class="com.itheima.bean.StudentFactory" scope=” singleton”>
<!---这里在后面加了一个scope属性值为singlenton,表示单例。默认--->
</bean>
Scope的各种取值
singleton:单例,默认值
prototype:多例。例如:struts与 spring整合时,action必须配置多例。
request:一次请求
session:一次会话
global session:集群一次会话。
要求掌握:singleton、prototype
P命名空间
P命名空间方便为bean的基本属性赋值,比如说Student有name和age这个属性,那么
XML:
<bean id=”student” calss=”com.aiyi.bean.Student”p:name=”海大仙” p:age=”19”>
</bean>
代码:
ApplicationContext application =
newClassPathXmlApplicationContext("ApplicationContext.xml");
//获取Bean,会自动给他付给name和age的值
Student student = (Student)application.getBean(”student”);
Systom.out.println(student);
Spring 的强大之处远远不止如此,这只是Spring的冰山一角,昨天整理的笔记,有时间继续整理
- 整理入门笔记_Spring
- 工作笔记_spring
- 学习笔记_spring任务调度
- MySql 入门笔记整理
- Python入门笔记整理
- Html入门笔记整理
- 学习笔记_spring多数据源配置
- (笔记)Spring MVC学习指南_Spring框架
- java入门基础笔记整理
- Spring 入门知识点笔记整理
- (笔记)Spring MVC学习指南_Spring MVC介绍
- [知了堂学习笔记]_Spring中AOP的简单理解
- javascript入门篇(慕课网笔记整理)
- 慕课网html入门知识笔记整理
- Android_(入门篇)整理笔记
- python入门学习笔记(待更新 + 整理)
- vue.js入门学习笔记整理
- 【持续更新】笔记整理-20170714-Kubernetes 入门
- java 理解Java对象序列化
- [leetcode] Longest Substring Without Repeating Characters
- fibonacci递归算法的“备忘录/Memo”优化法
- 自定义EditText画任意行线并限制文本的物理长度
- CAS简介
- 整理入门笔记_Spring
- 了解 web 及网络基础——极客学院学习笔记
- Xilinx实习一年总结
- 编写网络程序
- bluestacks手机模拟器安装qq或微信时,鼠标左键点聊天编辑框后会自动输入 c 字母
- 进程互斥(一)相关概念
- Java设计模式之抽象工厂模式
- java垃圾回收算法
- myEclipse如何将程序部署到tomcat(附录MyEclipse调试快捷键)