Spring的工程搭建
创建项目
使用IDEA搭建maven工程
打开开发工具IDEA,点击创建新项目。
核实项目所使用的JDK是否是已经安装好的JDK。
选择Maven工程 点击下一步。
输入项目名spring-demo可以看到存储位置有自动追加spring-demo
将存储位置改为任意盘下。
groupID一般是公司域名,我们可以使用com.自己的姓名全拼作为练习。
版本默认即可 点击完成。
IDEA配置Maven
File-Setting打开设置页
搜索maven
修改maven home directory为maven安装路径。
勾选“Override”将setting文件位置及仓库位置改为自配置。
修改setting文件位置为 maven安装路径\conf\setting.xml
修改仓库位置为 maven安装路径\repository
搭建配置Spring
引入依赖
将maven仓库查询网址:MavenRepository
将maven里需要的基础包的类到处并输入至下方代码中
spring基础包:
spring-core:Core模块主要包含Spring框架基本的核心工具类,Spring的其他组件要都要使用到这个包里的类,Core模块是其他组件的基本核心
spring-beans:包含访问配置文件、创建和管理bean以及进行IOC/DI操作相关的所有类
spring-context:Spring的上下文即IOC容器,通过上下文可以获得容器中的Bean
spring-expression:EL表达式语言用于在运行时查询和操纵对象
刷新maven等待自动下载
libraries中有了所有导入的包表示依赖引入完成
刷新出下图中的文件即代表成功引入
核心配置文件
在搭建好框架后,里面包含了许多功能,这里就需要创建配置文件与spring框架通信,文件路径为\src\main\resources文件名为applicationContext.xml
官方给出的配置文件内容如下:
复制到我们的配置文件后左上角会提示“Application context not configured for this file”,点击“Configure application context”,点击OK即可
编写代码测试
接口类
新建接口类
编写接口类:
package services;
public interface UserService {
public void saveUser();
}
实现类:
新建Java文件
实现接口并使用快捷键添加接口方法实现
package services.impl;
import services.UserService;
public class UserServiceImpl implements UserService {
public void saveUser() {
System.out.println(“service的save方法执行了”);
}
}
补充配置文件
将我们自定义的实现类交给Spring的容器管理
测试类
新建测试类
新建Java文件
编写测试类main方法:
public class DemoTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(“classpath:applicationContext.xml”);
UserService service = (UserService) context.getBean(“userService”);
service.saveUser();
}
}
Alt+Enter键导包
控制台打印输出,证明容器中获取到了实例
执行过程分析
BeanFactory
BeanFactory是基础类型的IOC容器,是管理bean容器的根接口,并提供了完整的IOC服务支持
简单来说BeanFactory就是一个管理Bean的工厂,它主要负责初始化各种Bean、调用生命周期等方法
ApplicationContext
ApplicationContext被称为应用上下文,是BeanFactory接口的子接口,在其基础上提供了其他的附加功能,扩展了BeanFactory接口
ClassPathXmlApplicationContext
ClassPathXmlApplicationContext是ApplicationContext的实现类,也在其基础上加了许多附加功能
该类从类路径ClassPath中寻找指定的XML配置文件,找到并完成对象实例化工作
refresh方法的作用:
准备容器刷新
准备bean工厂对象
加载配置文件中的所有bean标签
完成bean工厂实例化
完成容器刷新
context.getBean()
context.getBean()方法是通过配置文件中声明的bean标签id属性获取容器内的实例。
常用后端代码结构
项目常用后端代码结构也就是Controller+Service+Dao
Controller层(流程控制层)主要负责具体的业务模块流程的控制
Service层(业务逻辑层)主要负责业务模块的逻辑应用设计
DAO层(数据操作层)主要负责与数据库进行联络的一些任务
Controller层是为宾馆住宿后打扫人员,Service层负责顾客入住管理人员,DAO层是负责为宾馆提供一次性用具人员。
为了方便后端与前端、后端与数据库的数据传输引入了一些定义类,如entity、vo、dto、po、jo等,常用的就是entity和vo
vo为视图类,传递和接收前端的数据,与代码前端需要所对应。
entity为实体类,与数据库表一一对应。
Dao层去数据库查询基础数据,查到的基础数据用entity实体类存储
Service层调用Dao层方法拿取基础数据加工处理,加工好的数据用vo视图类存储
Controller层调用Service层方法拿取数据给前端
if判断和三目运算符
if条件语句是代码中常用的判断条件的代码,相对于其他的条件判断语句更为简单,如:
如果判别式结果为真,会执行代码块1,若为假执行代码块2
以取两数中最大值为例
三目运算符
还有一种比if条件语句更为简单的语句就是三目运算符
但只有if语句中代码块只有一行语句时我们会使用三目运算符来代替if语句
其代码结构如下:
1:判别式 ? 代码块1 : 代码块2;
如果判别式结果为真,会执行代码块1,若为假执行代码块2
以取两数中最大值为例:
if判断和三目运算符对比
三目运算符是我们经常在代码中使用的,a= (b==null?0:1); 这样一行代码可以代替一个 if-else,可以使代码变得清爽易读。但是,三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。
但如果判断后要执行的代码块偏复杂还是用if判断比较好