下面是“Java之Spring注解开发案例详解”的完整攻略。
什么是Spring注解
Spring注解是用于基于注解的配置和依赖注入的一种方式。使用注解可以简化配置和开发的复杂度,提高代码的可读性和维护性。Spring中有很多注解,如@Component、@Autowired、@Configuration等,它们能够帮助我们实现IoC和AOP等特性。
Spring注解开发案例
下面会介绍两个Spring注解开发案例,包括使用@Autowired注解实现自动装配和使用@Aspect注解实现AOP编程。
@Autowired注解实现自动装配
步骤一:创建一个UserService接口
public interface UserService {
void addUser(String username, String password);
}
步骤二:创建一个UserServiceImpl类实现UserService接口
@Service
public class UserServiceImpl implements UserService {
@Override
public void addUser(String username, String password) {
System.out.println("添加成功,用户名:" + username + ", 密码:" + password);
}
}
在UserServiceImpl类上使用@Service注解,表示这是一个服务类,能被Spring容器所管理。
步骤三:创建一个UserController类
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/addUser")
public void addUser(String username, String password) {
userService.addUser(username, password);
}
}
在UserController类上使用@RestController注解,表示这是一个RESTful接口的入口。在userSevice属性上使用@Autowired注解,表示这是一个需要自动装配的属性。
步骤四:编写入口类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在入口类上使用@SpringBootApplication注解,表示这是一个SpringBoot应用。
步骤五:测试
启动应用,访问http://localhost:8080/addUser,输入参数后提交即可。
@Aspect注解实现AOP编程
步骤一:创建一个LogAspect类
@Aspect
@Component
public class LogAspect {
@Pointcut("execution(* com.example.demo.controller..*(..))")
public void controllerPointcut() { }
@Around("controllerPointcut()")
public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
long startTime = System.currentTimeMillis();
Object result = proceedingJoinPoint.proceed();
long endTime = System.currentTimeMillis();
System.out.println(proceedingJoinPoint.getSignature().toString() + " 耗时:" + (endTime - startTime) + "ms");
return result;
}
}
在LogAspect类上使用@Aspect注解和@Component注解,表示这是一个切面类并且能够被Spring容器所管理。在LogAspect类中定义一个切点和一个环绕通知,用于实现对Controller的耗时统计。
步骤二:创建一个HelloController类
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
try {
Thread.sleep(new Random().nextInt(1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Hello World!";
}
}
在HelloController类上使用@RestController注解,表示这是一个RESTful接口的入口。
步骤三:编写入口类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在入口类上使用@SpringBootApplication注解,表示这是一个SpringBoot应用。
步骤四:测试
启动应用,访问http://localhost:8080/hello,刷新多次页面即可看到控制台输出的统计信息。
总结
本文介绍了两个Spring注解开发案例,分别是使用@Autowired注解实现自动装配和使用@Aspect注解实现AOP编程。希望这篇文章能够帮助到您。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java之Spring注解开发案例详解 - Python技术站