概述:
1、Spring框架
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
IOC(Inversion of Controller)-面向对象的一个准则,对象的控制(创建和管理)由容器或者框架来实现,而不是开发者直接调用,开发者只需要实现接口或者放入自己的类就可以
依赖注入(Dependency Injection
DI)每个方法都有一个独立的对象,通过接口去调用其他的对象,这些对象服务创建的时候才实现,是一种逆向的对象创建方式,Spring
中通过Constructor 或setter实现,实现了DI的库叫做容器 面向切面编程(Aspect oriented
programing,AOP)一种编程范式,允许横跨应用功能的切面,用于表示同时用在多个函数上的功能。事务,日志,权限等
壹:新建maven项目
前提:maven的安装与配置:传送门
一、创建maven项目
二、maven设置依赖自动导入
贰:整合spring
整合spring有两种方法:
一:依赖注入
第一步:在pom文件中加入
<!--spring相关包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.1.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
第二步:新建spring配置文件
二:jar导入
第一步:
第二步:如果自己有就是用自己目录下,没有就选择download,他就会自动下载。
第二步:新建spring配置文件
叁:创建第一个程序
一:代码:
第一步:新建helloword(程序员第一个程序,哈哈哈)
/**
* User: lomtom
* Date: 2020/3/2
* Time: 12:25
*/
//HelloWorld实体
public class HelloWorld {
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
// show方法
public void show(){
System.out.println(userName+":欢迎学习spring框架");
}
}
第二步:对象注入,修改spring配置文件,加入以下代码
1、第一种
<!-- 配置实体-->
<bean id="helloWorld" class="HelloWorld">
<!-- 属性赋值注入-->
<property name="userName" value="lomtom"/>
</bean>
2、第二种
<!-- 开启注解-->
<context:annotation-config/>
<bean id="helloWorld" class="com.lomtom.model.HelloWorld"/>
3、第三种
<context:annotation-config/>
<context:component-scan base-package="com.lomtom.model"/>
注:第二种和第三种是使用注解的方式,实体类应该加入注解
@Component
public class HelloWorld {
@Value("lomtom")
private String userName;
// show方法
public void show(){
System.out.println(userName+":欢迎学习spring框架");
}
}
第三步:测试,可以写main函数测试,我这里用test测试,用test测试需要加入junit依赖。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
写测试,函数需要@Test注解,这样spring才能识别。
//测试类
public class test {
// 测试函数
@Test
public void Test(){
// 加载配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
// 获取实例
HelloWord helloWord = (HelloWord) context.getBean("helloWorld");
// 调用方法
helloWord.show();
}
}
二:结果:
三:问题
问题:运行报错:class path resource [spring-config.xml] cannot be opened because it does not
解决:因为我使用的是maven
,这就关系到maven的打包方式,maven会将resources目录下的进行打包到WEB-INF目录下,所以这个spring-config.xml文件需要放在resources目录下,问题解决。