摘要:主要记录了在学习spring中记录的笔记
(轻量级是指这个框架不依赖于其他很多的东西,可以直接使用)
new
出来对象new
方式实现,而是交给spring配置创建类对象spring在javaee三层结构中,每一层都提供不同的解决技术:
spring 4.x
public class User{
public void add(){
//doSomething..
}
}
//在servlet调用类里面的方法
User user=new User();
User.add();
以上代码中,假如类名发生更改,或者方法名发生更改。缺陷在于耦合度太高了。
public class UserService{
public void add(){
}
}
public class UserServlet{
public void addUser(){
UserService s=Factory.getService();
s.add();
}
}
//解决方案,创建工厂类
public class Factory{
//提供返回UserService对象的方法
public static UserService getService(){
return new UserService();
}
}
在以上的解决方案中 servlet和工厂类耦合。开发中的一种思想是高内聚,低耦合。
public class UserService{
}
public class UserServlet{
//得到UserService的对象的原始方式:new创建
UserFactory.getService();
}
第一步:创建xml配置文件,配置要创建的对象类
<bean id="userService" class="com.zhangjinbang.UserService">
第二步:创建一个工厂类,使用dom4j解析配置文件+反射
public class UserFactory{
//返回UserService对象的方法
public static UserService getService(){
//使用dom4j解析xml文件
//根据id值userService,得到id对应的class属性值
String classValue=...
//使用反射创建类对象
Class clazz=Class.forName(classValue);
//创建类对象
UserService service=class.newInstance();
return service;
}
}
以上,当类的路径发生变化的时候,只需要修改配置文件就可以了,其他的文件都可以不用改变。
步骤:
jar包的特点,每个功能有三个jar包,基础jar包,文档jar包,源代码jar包
做spring最基本功能的时候,导入四个核心jar包就可以了
导入支持日志输出的jar包
maven pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zhangjinbang</groupId>
<artifactId>springdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springdemo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<!--spring-context依赖上面所提到的其他spring的beans、core、expression jar包,所以这里只需要写着一个就够了-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
</dependencies>
</project>
package com.zhangjinbang.ioc
public class User{
public void add(){
System.out.println("add ...");
}
public static void main(String[] args){
//原始的做法
User user = new User();
User.add();
}
}
【注意】spring核心配置文件名称和位置不是固定的,建议放到src
下面,官方建议applicationContext.xml