框架(framework),可以认为是某种应用的半成品,是一组组件,提供给开发人员完成自己的系统。如同别人已经搭建好了舞台,你只需要来表演就行,表演效果怎么样全靠自身功力。
框架一般都是成熟的、稳健的,比如比较完整的结构、良好的扩展性等,可以处理系统很多细节的问题,助于代码的升级。
笔记大纲
-
Spring框架简介
-
搭建Spring运行环境
- 新建Java项目工程
- 导入Jar包(5个)
- 新建Spring-XML文件
- 工程结构预览
-
Spring案例练手
1.Spring简介
Spring的官网:
https://spring.io/
(1)Spring是一个优秀的企业级开发开源框架;
(2)Spring是一个IOC(DI和AOP容器框架,之前JavaWeb总结的Servlet也是一个容器;
(3)Spring的六大优良特性 :
①非侵入式:基于Spring开发的应用中的对象可以不依赖与SpringAPI;
②依赖注入:DI(Depandecy Injection)是IOC(反转控制)最经典的实现;
③面向切面编程:AOP(Aspect Oriented Pragramming);
④容器:Spring是一个容器,它包含、管理应用对象的生命周期;
⑤组件化:Spring实现了简单的组件配置组合成一个复杂的应用,可使用XML和Java注解组合对象;
⑥一站式:在IOC和AOP的基础上可整合各种企业应用的开源框架和优秀的第三方类库。
(4)Spring模块示意图
2.搭建Spring运行环境
2.1.SST工具新建Java工程
命名符合Java规范,新建一个配置文件夹,用于存放XML等文件,新建一个Jar文件夹,用于存放用于存放第三方各种Jar。
2.2.导入Jar包
Jar包套装:核心包4个+日志包1个,注意要选中导入Jar进行
Bulid Path
操作!
Spring自身的Jar与额外的logging-Jar,在工程下自定义新建文件加lib,加入:
①spring-beans-4.0.0.RELEASE.jar
②spring-context-4.0.0.RELE2ASE.jar
③spring-core-4.0.0.RELEASE.jar
④spring-expression-4.0.0.RELEASE.jar
⑤ commons-logging-1.1.1.jar
2.3.新建Spring-XML文件
开发工具STS/Eclipse工具中点击 File->New->选择Spring Bean Configuration File,自定义命名,例如applicationContext.xml
。
2.4.工程结构预览
3.SpringDemo练手
3.1.创建Student类
这里再也不需要我们去new对象,旨在使用Spring创建对象,为属性赋值!
package com.codinglin.helloworld.beans;
public class Student {
private Integer stdId; //学号
private String stdName; //学生姓名
private String desc;//描述
private String gender;//性别
public Integer getStdId() {
return stdId;
}
public void setStdId(Integer stdId) {
this.stdId = stdId;
}
public String getStdName() {
return stdName;
}
public void setStdName(String stdName) {
this.stdName = stdName;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Student [stdId=" + stdId + ", stdName=" + stdName + ", desc=" + desc + ", gender=" + gender + "]";
}
//回顾:为什么使用包装类?因为包装类(Integer)可以接受null值!
}
3.2.配置Spring-XML文件
注意:
使用bean元素定义个一个由IOC容器创建的对象。
Spring容器底层通过反射创建对象。
DI(依赖注入)就是給属性赋值 :方式一:通过setXxx()赋值、方式二通过构造器类赋值。
<?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">
<!-- 让Spring容器管理Student类型:
id:容器创建好的对象的唯一标识
class:容器管理的类的全限定名(全类名
-->
<!-- 通过set方法进行注入-->
<bean id="studentId" class="com.codinglin.helloworld.beans.Student">
<!--给对象的属性赋值,name中的值必须与类中的set方法后面的名字一致,value是给属性赋值 -->
<property name="stdId" value="666"></property>
<property name="stdName" value="林大侠"></property>
<property name="desc" value="技术博主"></property>
<property name="gender" value="男"></property>
</bean>
</beans>
3.3.测试类
package com.codinglin.helloworld.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.codinglin.helloworld.beans.Student;
public class Main {
@SuppressWarnings("resource")
public static void main(String[] args) {
//创建一个Spring容器对象,底层是一个对象工厂
//两种实现ApplicationContext、BeanFactory
//ClassPathXmlApplicationContext对应类路径下的XML格式的配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//方式一:从容器中获取对象 根据id+强转
/*Student student = (Student)context.getBean("studentId");*/
//方式二:从容器中获取对象 根据对象类型(管理容器有两个,会抛异常)
/*Student student = context.getBean(Student.class);*/
//方式三:从容器中获取对象 根据对象类型
Student student = context.getBean("studentId",Student.class);
System.out.println(student);
}
}
3.4.输出结果
☝上述分享来源个人总结,如果分享对您有帮忙,希望您积极转载;如果您有不同的见解,希望您积极留言,让我们一起探讨,您的鼓励将是我前进道路上一份助力,非常感谢!我会不定时更新相关技术动态,同时我也会不断完善自己,提升技术,希望与君同成长同进步!
☞本人博客:https://coding0110lin.blog.csdn.net/ 欢迎转载,一起技术交流吧!