1.Spring4.0---输出HelloWorld

本文详细介绍了Spring框架的基础概念,包括轻量级、依赖注入、面向切面编程、容器和一站式整合特性。并通过实例展示了如何搭建Spring开发环境,配置及使用Spring容器管理对象,以及编写测试类验证功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Spring是什么?

       1.Spring 是一个开源框架.

2.Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能..

3.Spring 是一个 IOC(DI) 和 AOP 容器框架.

具体描述Sping:

 1.轻量级:Spring是非侵入式的,基于Spring开发的应用中的对象可以不依赖于Spring的API
2.依赖注入:(DI—dependencyinjection,IO)(后面介绍)
3.面向切面编程(AOP---aspect oriented programming)
4.容器:Spring 是一个容器,因为它包含并且管理应用对象的生命周期
4.框架:Spring实现了使用简单的组件配置组合成一个复杂的应用,在Spring中可以使用xml和Java注解组合这些对象
5.一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring自身也提供了展现层的SpringMVC和持久层的Spring JDBC)
二.搭建Spring开发环境
(1)把jar包加入到工程的lib文件夹下

(2)Spring的配置文件:一个典型的Spring项目需要创建一个或多个Bean配置文件,这些配置文件用于在Spring IOC容器里配置Bean,Bean的配置文件可以你放在classpath下,也可以放到其他目录下
(3)代码实现:
1.先写一个JavaBean,HelloWorld.java

package com.example.spring.beans;

public class HelloWorld {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	public void hello(){
		System.out.println("hello:"+this.name);
	}

}
2.在src目录下创建配置文件applicationContext.xml

每一个 <bean></bean>代表一个对象,id是唯一标识,name代表属性名,value代表属性值,这是属性注入,以后还会再说另外一种注入方式,叫构造注入

<?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:util="http://www.springframework.org/schema/util"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
	<!-- 配置bean -->
	<bean id="h" class="com.example.spring.beans.HelloWorld">
		<property name="name" value="Spring"></property> 
	</bean><pre name="code" class="java"></beans>
 
3.编写测试类 

package com.example.spring.beans;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext
<span style="font-family: Arial, Helvetica, sans-serif;">public class Main {</span>
	public static void main(String[] args) {
//		HelloWorld helloWorld=new HelloWorld();
//		helloWorld.setName("hello world!");
		
		//创建Spring的IOC容器,作用:调用构造方法进行初始化,并调用set方法为参数赋值
		//ApplicationContext 代表IOC容器(是个接口)
		//ClassPathXmlApplicationContext:ApplicationContext的子接口
		ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
		
		//从容器中获取Bean
		//利用Id定位到IOC容器中的Bean
		HelloWorld helloWorld=(HelloWorld)ctx.getBean("h");
		System.out.println(helloWorld)
		
		//调用hello方法
		helloWorld.hello();
		
	}
}

点击下载源码



"C:\Program Files\Java\jdk1.8.0_301\bin\java.exe" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:58017,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -javaagent:D:\Idea-2021.2\plugins\java\lib\rt\debugger-agent.jar -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_301\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_301\jre\lib\rt.jar;E:\huanan_win\cmd_demo\by_remote_service\target\classes;D:\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot-starter-web\2.7.12\spring-boot-starter-web-2.7.12.jar;D:\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot-starter\2.7.12\spring-boot-starter-2.7.12.jar;D:\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot\2.7.12\spring-boot-2.7.12.jar;D:\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot-starter-logging\2.7.12\spring-boot-starter-logging-2.7.12.jar;D:\apache-maven-3.6.3\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;D:\apache-maven-3.6.3\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;D:\apache-maven-3.6.3\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;D:\apache-maven-3.6.3\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\apache-maven-3.6.3\repository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;D:\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot-starter-json\2.7.12\spring-boot-starter-json-2.7.12.jar;D:\apache-maven-3.6.3\repository\com\fasterxml\jackson\core\jackson-databind\2.13.5\jackson-databind-2.13.5.jar;D:\apache-maven-3.6.3\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.5\jackson-annotations-2.13.5.jar;D:\apache-maven-3.6.3\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.5\jackson-datatype-jdk8-2.13.5.jar;D:\apache-maven-3.6.3\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.5\jackson-datatype-jsr310-2.13.5.jar;D:\apache-maven-3.6.3\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.5\jackson-module-parameter-names-2.13.5.jar;D:\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.12\spring-boot-starter-tomcat-2.7.12.jar;D:\apache-maven-3.6.3\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.75\tomcat-embed-core-9.0.75.jar;D:\apache-maven-3.6.3\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.75\tomcat-embed-el-9.0.75.jar;D:\apache-maven-3.6.3\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.75\tomcat-embed-websocket-9.0.75.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-web\5.3.27\spring-web-5.3.27.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-beans\5.3.27\spring-beans-5.3.27.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-webmvc\5.3.27\spring-webmvc-5.3.27.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-aop\5.3.27\spring-aop-5.3.27.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-context\5.3.27\spring-context-5.3.27.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-expression\5.3.27\spring-expression-5.3.27.jar;D:\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot-starter-websocket\2.7.12\spring-boot-starter-websocket-2.7.12.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-messaging\5.3.27\spring-messaging-5.3.27.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-websocket\5.3.27\spring-websocket-5.3.27.jar;D:\apache-maven-3.6.3\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;D:\apache-maven-3.6.3\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-core\5.3.27\spring-core-5.3.27.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-jcl\5.3.27\spring-jcl-5.3.27.jar;D:\apache-maven-3.6.3\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;D:\apache-maven-3.6.3\repository\com\baomidou\mybatis-plus-generator\3.5.3.1\mybatis-plus-generator-3.5.3.1.jar;D:\apache-maven-3.6.3\repository\cn\hutool\hutool-all\5.4.5\hutool-all-5.4.5.jar;D:\apache-maven-3.6.3\repository\org\springdoc\springdoc-openapi-ui\1.6.14\springdoc-openapi-ui-1.6.14.jar;D:\apache-maven-3.6.3\repository\org\springdoc\springdoc-openapi-webmvc-core\1.6.14\springdoc-openapi-webmvc-core-1.6.14.jar;D:\apache-maven-3.6.3\repository\org\springdoc\springdoc-openapi-common\1.6.14\springdoc-openapi-common-1.6.14.jar;D:\apache-maven-3.6.3\repository\io\swagger\core\v3\swagger-core\2.2.7\swagger-core-2.2.7.jar;D:\apache-maven-3.6.3\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\apache-maven-3.6.3\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.13.5\jackson-dataformat-yaml-2.13.5.jar;D:\apache-maven-3.6.3\repository\io\swagger\core\v3\swagger-annotations\2.2.7\swagger-annotations-2.2.7.jar;D:\apache-maven-3.6.3\repository\io\swagger\core\v3\swagger-models\2.2.7\swagger-models-2.2.7.jar;D:\apache-maven-3.6.3\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;D:\apache-maven-3.6.3\repository\org\webjars\swagger-ui\4.15.5\swagger-ui-4.15.5.jar;D:\apache-maven-3.6.3\repository\org\webjars\webjars-locator-core\0.50\webjars-locator-core-0.50.jar;D:\apache-maven-3.6.3\repository\com\fasterxml\jackson\core\jackson-core\2.13.5\jackson-core-2.13.5.jar;D:\apache-maven-3.6.3\repository\io\github\classgraph\classgraph\4.8.149\classgraph-4.8.149.jar;D:\apache-maven-3.6.3\repository\mysql\mysql-connector-java\8.0.29\mysql-connector-java-8.0.29.jar;D:\apache-maven-3.6.3\repository\com\google\protobuf\protobuf-java\3.19.4\protobuf-java-3.19.4.jar;D:\apache-maven-3.6.3\repository\org\projectlombok\lombok\1.18.28\lombok-1.18.28.jar;D:\apache-maven-3.6.3\repository\com\baomidou\mybatis-plus-boot-starter\3.4.2\mybatis-plus-boot-starter-3.4.2.jar;D:\apache-maven-3.6.3\repository\com\baomidou\mybatis-plus\3.4.2\mybatis-plus-3.4.2.jar;D:\apache-maven-3.6.3\repository\com\baomidou\mybatis-plus-extension\3.4.2\mybatis-plus-extension-3.4.2.jar;D:\apache-maven-3.6.3\repository\com\baomidou\mybatis-plus-core\3.4.2\mybatis-plus-core-3.4.2.jar;D:\apache-maven-3.6.3\repository\com\baomidou\mybatis-plus-annotation\3.4.2\mybatis-plus-annotation-3.4.2.jar;D:\apache-maven-3.6.3\repository\com\github\jsqlparser\jsqlparser\4.0\jsqlparser-4.0.jar;D:\apache-maven-3.6.3\repository\org\mybatis\mybatis\3.5.6\mybatis-3.5.6.jar;D:\apache-maven-3.6.3\repository\org\mybatis\mybatis-spring\2.0.5\mybatis-spring-2.0.5.jar;D:\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.12\spring-boot-autoconfigure-2.7.12.jar;D:\apache-maven-3.6.3\repository\org\springframework\boot\spring-boot-starter-jdbc\2.7.12\spring-boot-starter-jdbc-2.7.12.jar;D:\apache-maven-3.6.3\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-jdbc\5.3.27\spring-jdbc-5.3.27.jar;D:\apache-maven-3.6.3\repository\org\springframework\spring-tx\5.3.27\spring-tx-5.3.27.jar;D:\apache-maven-3.6.3\repository\ch\qos\logback\logback-classic\1.4.14\logback-classic-1.4.14.jar;D:\apache-maven-3.6.3\repository\ch\qos\logback\logback-core\1.2.12\logback-core-1.2.12.jar;D:\apache-maven-3.6.3\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;D:\Idea-2021.2\lib\idea_rt.jar" com.example.demo.ByRemoteServiceApplication Connected to the target VM, address: '127.0.0.1:58017', transport: 'socket' SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.12) 六月 06, 2025 4:01:55 下午 org.apache.catalina.core.StandardService startInternal 信息: Starting service [Tomcat] 六月 06, 2025 4:01:55 下午 org.apache.catalina.core.StandardEngine startInternal 信息: Starting Servlet engine: [Apache Tomcat/9.0.75] 六月 06, 2025 4:01:55 下午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring embedded WebApplicationContext _ _ |_ _ _|_. ___ _ | _ | | |\/|_)(_| | |_\ |_)||_|_\ / | 3.4.2
最新发布
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值