假设我们的项目有一个简单的三层架构:控制器(Controller)、服务(Service)和数据访问对象(DAO)。我们将使用Spring注解来配置这些组件。
Maven依赖
首先,确保你的pom.xml
文件中包含Spring相关的依赖。这里是一个简化的Maven配置示例:
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.9</version> <!-- 请使用最新版本 --></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.9</version> <!-- 请使用最新版本 --></dependency>
</dependencies>
配置类
创建一个配置类来启用组件扫描和配置Spring上下文。
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan(basePackages = "com.example")
public class AppConfig {
}
DAO层
创建一个简单的DAO接口和它的实现类。
// 接口
public interface UserRepository {String getUser();
}// 实现
import org.springframework.stereotype.Repository;@Repository
public class UserRepositoryImpl implements UserRepository {@Overridepublic String getUser() {return "User from Repository";}
}
服务层
创建一个服务接口和服务实现类,其中使用@Autowired来注入DAO。
// 接口
public interface UserService {String getUser();
}// 实现
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl implements UserService {private final UserRepository userRepository;@Autowiredpublic UserServiceImpl(UserRepository userRepository) {this.userRepository = userRepository;}@Overridepublic String getUser() {return userRepository.getUser();}
}
控制器层
创建一个简单的REST控制器,它会调用服务层的方法。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {private final UserService userService;@Autowiredpublic UserController(UserService userService) {this.userService = userService;}@GetMapping("/user")public String getUser() {return userService.getUser();}
}
主程序
最后,需要一个主程序来启动Spring应用上下文,并运行一个简单的测试。
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class MainApp {public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);UserController controller = context.getBean(UserController.class);System.out.println(controller.getUser());}
}
这个例子展示了如何使用Spring的注解来构建一个简单的应用程序。通过使用@Component
, @Service
, @Repository
, @RestController
等注解,我们可以快速地定义各种组件,并利用@Autowired
来进行依赖注入。这样的方式极大地简化了配置过程,能够更专注于业务逻辑的实现。