赞
踩
最近荔枝在转技术栈呢,后端Java零零散散也学了半个月,在一边总结blog输出的同时一遍实操项目。最近学完JavaSE部分的重点之后荔枝来入手spring框架,说起spring其实大家耳熟能详的就想起IoC和AOP了,但在这篇文章荔枝主要还是梳理一下一个最简单的spring框架配置流程并把相应需要的环境和踩过的坑给大家分享一下哈哈哈,大家避避雷~
在正式开始之前我们需要配置好环境,首先需要有一个IDEA,当然使用Eclipse也可以只是可能步骤不太一样了。因为荔枝是从pytyon转技术栈过来的,所以对于pycharm用习惯了,对于同一个公司(JetBrains)出的,所以一开始荔枝就钟情于IDEA的风格了。对于基本的IDEA和JDK配置以及Maven的下载和配置,大家可以看看荔枝的另外两篇文章
步入JAVA——环境搭建与配置
https://blog.csdn.net/qq_62706049/article/details/131500175Maven —— 项目管理工具
https://blog.csdn.net/qq_62706049/article/details/131500175
大家可能会疑惑哈,为啥没说spring怎么下载和安装呢?其实当初荔枝和绝大多数入门的小伙伴
一样直接在网上找下载教程啥的,但是哈走了一点弯路浪费一天时间~~~
大多数博客是这么写的,首先进入Spring官网:Spring | Home 大家可能需要挂一下梯子上去看看。之后选择Projects——Spring Farmework,然后点击上面的Github图标并选择Access ...中的链接并跳转到如下页面:

跳转至一个Jfrog平台并按照大多数blog提供的方法你会发现找不到文件,荔枝翻了翻发现其实都没必要自己去找,直接输入这个网址就行了:https://repo.spring.io/artifactory/release/org/springframework/spring
然后荔枝除了一些小状况,在url中输入上面的链接并跳转会被重定向到JFrog平台的登录入口,因为刚刚开始接触并不了解所以荔枝就打算直接注册一个账号。值得伤心的是没有找到注册入口,那就继续谷歌搜索解决方案:荔枝找了一会发现可以在JFrog其实有点像一个代码管理仓库,可以用Docker来安装并在本地首次进入可以注册账号,这部就解决啦哈哈哈哈。
然而显示再次打脸,账号是注册好了但显示密码不对或者账户被锁定了。不对劲,荔枝感觉不应该这么麻烦滴,查了一下其实没必要把spring的jar包下载下来,可以在项目中通过配置pom.xml文件来自动导入嘞,一天白干活呜呜呜呜~~~
Java Spring是一个开源框架,从2003年开始兴起的一个轻量级Java开发框架,直至今天它仍然有着极大的贡献度。Spring是为了解决企业级应用开发的复杂性而创建的,降低了开发的复杂度。Spring框架主要通过以下4种关键策略来降低Java后端开发的复杂性:
我们最常说的Spring框架其实指的是Spring Framwork,但Spring最为Java中的顶级项目,还有诸如Spring Cloud、SpringData和SpringBoot等组件,又称为Spring全家桶。基本上现在Java最主流的开发框架就是Spring和它的周边了,Spring的核心则是控制反转IOC和面向切面编程AOP。
Spring体系结构

模块功能详解
首先打开你的IDEA,这里记得下载专业版的哈,学生通过申请是可以免费使用一年的。一次选择File——New——Projects新建一个工程项目。

在配置那里选择是基于Maven创建的,这非常重要!同时需要配置项目名称和包名,按照自己项目的需求选择对应spring要求的Java JDK版本,这里荔枝选择的是JDK17,之后点击确定就创建好了。

创建好后可以选择创建子项目,这里荔枝是打算练手所以就创建了子项目。也是类似的操作,依次选择New——Module来创建子项目,确定好对应配置即可。


完成之后我们就需要打开项目的工程目录并在src目录下来配置参数,依次打开src——main——resources,选择创建一个xml文件,这里的命名可以随便,这里我命名为bean.xml。

我们可以在src——main——java——包名中右键创建一个User类,并将该对象的实例化托管给spring,通过这个过程来体会spring的妙用。
- package com.crj;
-
- public class User {
- public User(){
- System.out.println("无参构造被执行了");
- }
-
- public void add(){
- System.out.println("add...");
- }
- }
在前面创建的xml文件中配置<bean>
- <?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中完成对象的创建
- 借助bean标签
- id属性:唯一标识
- class属性:要创建对象所在类的全路径
- -->
- <bean id="user" class="com.crj.User"></bean>
- </beans>
配置好后我们创建一个测试类来测试一下对象是否可以创建成功,按照之前的语法,我们在实例化对象的时候会采用User user = new User()来实例化对象,这里不再使用new对象的方式来获取user对象,而是把这个过程交给spring即可。
- package com.crj;
-
- import org.junit.jupiter.api.Test;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
-
- public class TestUser {
-
- @Test
- public void testUserObject(){
- //加载spring配置文件,对象创建
- ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
-
- //获取创建的对象
- User user = (User)context.getBean("user");
- System.out.println(user);
- //使用对象调用方法进行测试
- user.add();
-
- }
-
- }

spring返回创建的对象过程
- //Java反射的方式
- Class clazz = Class.forName("com.crj.User")
- User user = (User)clazz.getDeclaredConstructor().newInstance()
Apache Log4j2是一个开源的日志记录组件,使用非常的广泛。在工程中以易用方便代替了System.out等打印语句,它是JAVA下最流行的日志输入工具。Log4j2主要有几个重要的部分:明确日志信息的优先级(其中优先级高的日志级别会自动屏蔽优先级低的日志,换句话说就是只会显示优先级高的日志);明确日志信息的输出目的地;日志信息的输出格式。
在正式使用日志信息Log4j2这个组件之前,我们除了在最开始的bean.xml中引入组件外,还需要单独配置日志文件的设置。
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <loggers>
- <!--
- level指定日志级别,从低到高的优先级:
- TRACE < DEBUG < INFO < WARN < ERROR < FATAL
- trace:追踪,是最低的日志级别,相当于追踪程序的执行
- debug:调试,一般在中,都将其设置为最低的日志级别
- info:信息,输出重要的信息,使用较多
- warn:警告,输出警告的信息
- error:错误,输出错误信息
- fatal:严重错误
- -->
- <root level="DEBUG">
- <appender-ref ref="spring6log" />
- <appender-ref ref="RollingFile" />
- <appender-ref ref="log" />
- </root>
- </loggers>
- <appenders>
- <!-- 输出日志信息到控制台-->
- <console name="spring6log" target="SYSTEM_OUT">
- <!-- 控制日志的输出格式-->
- <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-3level %logger{1024} - %msg%n"/>
- </console>
- <!-- 会在本地你指定的路径下创建一个log文件,在每次执行程序的时候可能自动清空这是由append属性来决定,适合测试使用-->
- <File name="log" fileName="自己设置的存储路径/test.log" append="false">
- <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
- </File>
- <!-- 打印所有的信息并在每次大小超过size后就会自动压缩作为存档-->
- <RollingFile name="RollingFile" fileName="自己设定的存储路径/app.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
- <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss-z} %-5level %class{36} %L %M - %msg%xEx%n"/>
- <SizeBasedTriggeringPolicy size="50MB"/>
- <!--DefaultRoLLoverstrategy属性如不设置,
- 刚默认为最多同一文件夹下7个文件,这里设置了20-->
- <DefaultRolloverStrategy max="20"/>
- </RollingFile>
- </appenders>
-
- </configuration>

测试一下
- package com.crj;
-
- import org.junit.jupiter.api.Test;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
-
- public class TestUser {
- // 手动执行日志写入,首先创建一个Logger对象
- private Logger logger = LoggerFactory.getLogger(TestUser.class);
- @Test
- public void testUserObject(){
- //加载spring配置文件,对象创建
- ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
-
- //获取创建的对象
- User user = (User)context.getBean("user");
- System.out.println(user);
- //使用对象调用方法进行测试
- user.add();
-
- //手动写日志
- logger.info("执行调用成功。。。");
- }
-
- }

控制台输出:

其实这篇文章荔枝并没有长篇大论地去介绍Spring的体系内容,荔枝主要还是记录以下自己是如何创建工程的、踩到了什么坑、粗浅了解下Spring框架的体系结构以及体会以下入门案例哈哈哈,希望能帮助到有需要的小伙伴~~~
今朝已然成为过去,明日依然向往未来!我是小荔枝,在技术成长的路上与你相伴,码文不易,麻烦举起小爪爪点个赞吧哈哈哈~~~ 比心心♥~~~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。