Spring helloworld
Spring家族介绍与开发环境
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
Spring能做什么?
Spring是一个轻量级的控制反转(IoC/di)和面向切面编程(AOP) 的对象容器框架
Spring官网:http://spring.io/
Spring 是一个于 2003 年兴起的一个轻量级的 Java 开源开发框架
如今Spring已是Java项目的标配,它极大的简化了开发过程,降低了开发难度。
-
方便解耦,简化开发;
-
AOP 编程的支持;
-
声明式事务的支持;
-
方便程序的测试;
-
方便集成各种优秀框架。
IoC
Inversion of Control
AOP
Aspect Oriented Programming
Spring5新特性
-
支持JDK8
- Spring 接口中的默认方法
- 基于 Java8 反射增强的内部代码改进
- 在框架代码中使用函数式编程 - lambda表达式 和 stream流
-
响应式编程支持Spring Web Reactive异步的、非阻塞的、事件驱动的服务
-
支持J2EE7
- Servlet 3.1
- JMS 2.0
- JPA 2.1
- JAX-RS 2.0
-
Bean Validation 1.1
-
Hibernate 5
-
Jackson 2.6
-
EhCache 2.10
-
JUnit 5
-
Tiles 3
-
Kotlin## 合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
开发环境
Spring Jar包
SpringFramework官网下载地址:
https://repo.spring.io/libs-release-local/org/springframework/spring/
-
Doc 文档
-
Libs Jar包
-
Schema XML约束
-
license.txt 许可协议
-
notice.txt 注意事项
-
readme.txt 读我
常用Jar包
spring-core | 框架的基础功能,包括IOC和AOP功能 |
---|---|
spring-aspects | 提供了与AspectJ的集成,AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。 |
spring-beans | 所有应用都要用到,包含访问配置文件、创建和管理 bean 以及进行 Inversion of Control(控制反转) / Dependency Injection(依赖注入)操作相关的所有类。外部依赖 spring-core |
spring-context | |
spring-aop、spring-instrument | 面向切面编程、植入代理 |
spring-expression | 模块提供了强大的表达式语言去支持查询和操作运行时对象图。这是对JSP 2.1规范中规定的统一表达式语言的扩展。该语言支持设置和获取属性值,属性分配,方法调用,访问数组,集合和索引器的内容,逻辑和算术运算,变量命名以及从Spring的IoC容器中以名称检索对象。 它还支持列表投影和选择以及常见的列表聚合。 |
spring-messaging | 消息传递 |
spring-jdbc、spring-jms、spring-orm | 数据访问支持 |
spring-jcl | Jakarta Commons Logging采用了设计模式中的“适配器模式”,它对外提供统一的接口,然后在适配类中将对日志的操作委托给具体的日志框架。 |
spring-tx | 事务 |
spring-webmvc、spring-web | Webmvc框架支持 |
spring-webflux | Servlet3.1 + Netty 方式的WebMvc |
spring-websocket | 对ws支持 |
commons-logging
运行Spring程序额外还需要commons-logging包
http://commons.apache.org/proper/commons-logging/download_logging.cgi
开发工具
可以使用Eclipse、Idea等
推荐使用官方开发工具STS
https://spring.io/tools
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1PbyHp6Q-1607049751051)(images/1571504062996.png)]
环境变量
window下配置
-
新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径)
-
编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
-
新建->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
在控制台分别输入java,javac,java -version 命令,测试环境是否设置成功
Hello world
新建java项目
包引入
配置文件
在src下新建
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
"src/applicationContext.xml"
<bean id="user" class="com.msb.User"></bean>
</beans>
Bean
建立准备由Spring管理的Bean
包含两个属性,生成get/set方法
private String name;
private Integer age;
测试类
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User)ctx.getBean("user");
user.setName("uu");
user.setAge(18);
System.out.println(ToStringBuilder.reflectionToString(user));;
ToStringBuilder 工具类
-
Commons项目中用来处理Java基本对象方法的工具类包,可以简化很多平时经常要用到的写法,例如判断字符串是否为空等等。
-
是一个最常用的工具,作为jdk的补充。
-
Lang下有很多Utils类,提供了若干static方法供调用,涵盖了字符串操作、字符操作、JVM交互操作、归类、异常和位域校验等等。
项目地址
http://commons.apache.org/proper/commons-lang/download_lang.cgi