江苏省交通建设监理协会网站,高端网站建站,实施网站推广的最终目的是,网页设计页面大小是多少一、引言二、Spring核心概念三、Spring入门示例四、进一步了解Spring的依赖注入五、Spring的面向切面编程#xff08;AOP#xff09;六、总结 一、引言
Spring框架自2003年发布以来#xff0c;凭借其轻量级、易于扩展的特性#xff0c;在Java企业级应用开发领域得到了广泛… 一、引言二、Spring核心概念三、Spring入门示例四、进一步了解Spring的依赖注入五、Spring的面向切面编程AOP六、总结 一、引言
Spring框架自2003年发布以来凭借其轻量级、易于扩展的特性在Java企业级应用开发领域得到了广泛的应用。本文旨在帮助初学者快速掌握Spring框架的基本使用并为进阶学习打下基础。
二、Spring核心概念
控制反转IoC依赖注入DI面向切面编程AOP
三、Spring入门示例
添加Spring依赖 首先在项目的pom.xml文件中添加Spring的依赖
dependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.3.9/version/dependency
/dependencies创建Bean 创建一个名为User的Java类用于表示用户信息
public class User {private String name;private int age;// 构造函数、设值方法和toString方法省略
}配置Spring容器 在src/main/resources目录下创建一个名为applicationContext.xml的配置文件配置User类的Bean
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdbean iduser classcom.example.demo.Userproperty namename value张三/property nameage value25//bean
/beans获取Bean 在测试类中通过Spring容器获取User对象
public class DemoTest {Testpublic void test() {// 加载配置文件创建Spring容器ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml);// 获取BeanUser user (User) context.getBean(user);System.out.println(user);}
}运行测试类输出结果如下
User{name张三, age25}四、进一步了解Spring的依赖注入
构造器注入设值注入自动装配 以下是设值注入的示例 首先确保User类中有相应的setter方法
public class User {private String name;private int age;// 省略构造函数和其他代码public void setName(String name) {this.name name;}public void setAge(int age) {this.age age;}
}然后在applicationContext.xml中配置设值注入
bean iduser classcom.example.demo.Userproperty namename value王五/property nameage value28/
/bean五、Spring的面向切面编程AOP
以下是一个简单的AOP示例 11. 添加AOP依赖 在pom.xml中添加Spring AOP的依赖
dependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion5.3.9/version
/dependency
dependencygroupIdorg.aspectj/groupIdartifactIdaspectjweaver/artifactIdversion1.9.7/version
/dependency创建切面类 创建一个名为LoggingAspect的类用于记录方法调用的日志
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
Aspect
public class LoggingAspect {Pointcut(execution(* com.example.demo.UserService.*(..)))public void pointcut() {}Before(pointcut())public void beforeAdvice() {System.out.println(方法执行前记录日志...);}
}配置AOP 在applicationContext.xml中配置AOP
aop:aspectj-autoproxy/
bean idloggingAspect classcom.example.demo.LoggingAspect/创建目标类 创建一个名为UserService的类作为AOP的目标
public class UserService {public void addUser() {System.out.println(添加用户...);
}}
在applicationContext.xml中配置UserService的Bean
xml
bean iduserService classcom.example.demo.UserService/测试AOP 在测试类中通过Spring容器获取UserService对象并调用addUser方法
public class AopTest {Testpublic void testAop() {ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml);UserService userService (UserService) context.getBean(userService);userService.addUser();}
}运行测试类输出结果如下
方法执行前记录日志...
添加用户...从输出结果可以看出在UserService的addUser方法执行前LoggingAspect的beforeAdvice方法被调用成功实现了AOP的日志记录功能。
六、总结
Spring框架的功能远不止于此它还包括Spring MVC、Spring Data、Spring Security等多个模块每个模块都有其独特的应用场景。