一、什么是Spring
众所不周知,Spring就是爪哇人的春天,但是在框架程序设计之前都绕不开javaWeb
1.javaWeb框架发展史
1、Servlet+JSP+JavaBean(跳转页面、业务逻辑判断、数据库查询)
2、MVC三层架构(M Model =pojo(User)V-view(USP)C-(controller-servlet))
(
web-跳转页面
service-业务逻辑判断 new UserService0;
dao-数据库查询 new UserDao();
)
3、使用EJB进行应用的开发,但是EJB是重量级框架(在使用的时候,过多的接口和依赖,侵入性强),在使用上比较麻烦 UserService imp extends
4、Struts1/Struts2+Hibernate+Spring
Spring
(
web-跳转页面 Struts
service-业务逻辑判断
dao-数据库查询Hibernate
)--------SSH
5、SpringMVC+Mybatis+Spring
(
web-跳转页面 SpringMVC(出现BUG,使用毕竟麻烦)
service-业务逻辑判断
dao-数据库查询 myBatis
)-------SSM
6、SpringBoot开发,约定大于配置SSM搭建架构需要大量XML配置文件
7、mvvm架构
Model(模型):负责处理应用程序的数据逻辑,比如数据库读写等数据源的操作。
View(视图):负责显示数据(即模型层的数据)并且接收用户操作界面的界面。
ViewModel(视图模型):作为Model和View之间的桥梁,从Model层获取数据后,处理并返回给View层显示。ViewModel 还负责处理View层的用户界面操作,将相关事件转发到Model层。
2.Spring框架简介
Spring框架英文全称Spring framework,是由Spring团队研发的模块化、轻量级开源框架。其主要目的 是为了简化项目开发。在项目开发中,可以说没有刻意使用Spring,却处处有着Spring存在,用官网对Spring框架的介绍:Spring框架核心功能包含依赖注入、事务管理、Web应用、数据访问、消息发送等等。
Spring框架的设计理念基于以下核心原则:
轻量级设计:
轻量级设计是Spring框架的首要原则之一。通过采用轻量级的设计,Spring能够在应用程序开发中提供高效、简单的解决方案。相比于其他重型框架,Spring注重简洁性,使得开发者能够更专注于业务逻辑的实现,而不必被繁琐的框架细节所困扰。
非侵入性的设计:
Spring框架强调非侵入性,这意味着开发者不需要修改已有的Java类来适应框架,从而保持了代码的整洁性和可维护性。非侵入性设计的优势在于,开发者可以更灵活地选择使用和配置框架的功能,而不会影响到已有的代码结构。
二、搭建步骤
(ps:写博客的时候用的学校实验室的电脑)
1、首先利用IDEA创建Maven工程项目
2、点击创建后就是这样的目录
3、我们先删掉src目录,然后单独创建一个spring-first模块
如下:
4、在pom.xml文件下填写Spring的相关依赖(其中有一些拓宽工具依赖)
5、在resources包下创建Spring配置文件,整合日志配置文件
applicationContext.xml:
applicationContext.xml 是Spring配置文件
applicationContext是约定俗成的叫法
log4j:
6、随便新建一个用户类
具体的包名看你自己的本地
package com.xxx.demo.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;@Data
@AllArgsConstructor@Component
public class User {private String Name;private String password;public void add(){System.out.println("User add.........");}
}
新建一个AppConfig类,进行定义扫包
package com.xxx.demo.config;import com.xxx.demo.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@ComponentScan(basePackages = "com.xxx.demo")
@Configuration
public class AppConfig {@Beanpublic User user(){return new User();}}
各个注解的作用为:
@ComponentScan: 全局扫描组件
其中的参数 basePackages 扫描组件的包
@Configuration: 声明当前类为JavaConfig类
@Bean: 自动装配
7、最后在test目录下新建一个UserTest类
package com.xxx.demo.pojo;import com.xxx.demo.config.AppConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AppConfig.class)
public class TestUser {@Autowiredprivate User user;@Testpublic void test(){user.add();}}
后续:
后续代码 则在其他持续层上面补充
至此基础框架搭建完成
总结:
简单来说,Spring的轻量级给项目开发提供了很多便捷的开发模式和方式,相比传统的更灵活,但反过来说,由于框架的普适性大,才导致Java整个学习环境都比其他语言要卷上很多,吃这口饭可能注定都没办法留头发了。