21xrx.com
2024-12-23 03:24:44 Monday
登录
文章检索 我的文章 写文章
我是一名软件工程专业的学生
2023-06-16 11:17:14 深夜i     --     --

我是一名软件工程专业的学生,在Java框架技术这门课程的大作业中,我选择了Spring框架进行研究。在这篇文章中,我将分享我学到的关于Spring框架的知识和经验。

关键词一:依赖注入

Spring框架最大的特点就是依赖注入(Dependency Injection,简称DI)机制。通过DI,我们可以将依赖关系交由Spring来管理,而不再是我们手动创建和注入。下面是一个简单的DI示例代码:


public class Car {

  private Engine engine;

  public Car(Engine engine)

    this.engine = engine;

  

  public void run() {

    engine.start();

  }

}

public class Engine {

  public void start() {

    System.out.println("Engine started.");

  }

}

public class Main {

  public static void main(String[] args) {

    Engine engine = new Engine();

    Car car = new Car(engine);

    car.run();

  }

}

在这个例子中,我们手动创建了Engine实例并传入Car的构造函数中,让Car依赖于Engine。但是在Spring中,我们可以通过配置文件或注解的方式,告诉Spring需要创建哪些实例,并自动注入到需要的地方,减少了手动编写依赖关系的工作。

关键词二:AOP

AOP(Aspect Oriented Programming,面向切面编程)是Spring框架另一个重要特性。AOP可以让我们在不修改原有逻辑的情况下,通过切面的方式添加额外的功能。下面是一个简单的AOP示例代码:


@Aspect

@Component

public class LogAspect {

  @Before("execution(public * com.example.service.UserService.*(..))")

  public void beforeMethod() {

    System.out.println("Before method...");

  }

  @After("execution(public * com.example.service.UserService.*(..))")

  public void afterMethod() {

    System.out.println("After method...");

  }

}

@Service

public class UserService {

  public void addUser() {

    System.out.println("Add user...");

  }

}

@Configuration

@EnableAspectJAutoProxy

@ComponentScan("com.example")

public class AppConfig

  // ...

在这个例子中,我们定义了一个LogAspect切面,在UserService的方法执行前后分别输出日志信息。通过@Configuration和@EnableAspectJAutoProxy注解,我们启用了AOP功能,并自动扫描需要添加切面的类。

关键词三:Spring Boot

Spring Boot是Spring框架的一个子项目,它可以帮助我们快速构建基于Spring的Web应用程序。Spring Boot通过自动配置、内嵌Servlet容器等方式,使我们不需要手动配置和部署应用程序,更加方便和高效。下面是一个简单的Spring Boot示例代码:


@SpringBootApplication

public class App {

  public static void main(String[] args) {

    SpringApplication.run(App.class, args);

  }

}

@RestController

public class HelloController {

  @GetMapping("/hello")

  public String hello()

    return "Hello World!";

  

}

在这个例子中,我们通过@SpringBootApplication注解告诉Spring Boot这是一个启动类,使用内嵌Tomcat容器,并扫描@Controller和@RestController注解的类。在HelloController中,我们使用@GetMapping注解将/hello映射到hello方法,并返回字符串"Hello World!"。启动应用程序后,访问http://localhost:8080/hello,就可以看到输出了。

标题:Spring框架技术大作业:从依赖注入到AOP和Spring Boot

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复