spring boot
### Spring Boot 快速搭建及基础操作 #### 一、Spring Boot 概述 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目标是简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式(比如自动配置)来简化整个构建和部署的过程。Spring Boot 的主要特性包括:内嵌服务器、简化 Maven 配置、自动配置、起步依赖、外部化配置等。 #### 二、创建 Maven 工程 在本例中,我们创建了一个名为 `huatuo-spring-boot` 的 Maven 工程。Maven 是一个项目管理工具,可以帮助开发者更轻松地构建和管理 Java 项目。通过 Maven 可以自动化构建过程,包括编译、测试、打包、部署等步骤,并且可以方便地管理项目依赖。 #### 三、项目结构概述 `huatuo-spring-boot` 工程的结构如上所示,主要包括以下几个部分: 1. **web(jsp)**:表示使用 JSP 技术进行前端页面展示。 2. **MyBatis**:一种优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。 3. **监听器**:用于监听应用程序中的某些事件并作出响应。 4. **application.properties**:配置文件,用于存放各种配置信息,如数据库连接配置等。 5. **日志**:记录程序运行时的信息,帮助开发者了解程序执行情况和排查问题。 6. **拦截器**:类似于监听器,但在 Spring MVC 中主要用于对请求进行预处理或后处理。 7. **代码改端口**:通过编程方式改变应用程序监听的端口号。 8. **Redis**:一个开源的键值存储系统,常用于缓存数据、会话管理等场景。 9. **SpringBoot 测试**:编写单元测试和集成测试确保应用质量。 10. **项目启动**:通过 `SampleXmlApplication` 类中的 `main()` 方法启动应用。 #### 四、具体实现功能的类介绍 1. **监听器(MyBean)**:此类负责监听特定的事件,例如应用上下文初始化完成事件。可以在此类中执行一些初始化逻辑。 ```java public class MyBean implements ApplicationListener<ContextRefreshedEvent> { @Override public void onApplicationEvent(ContextRefreshedEvent event) { // 在这里可以写入监听到上下文刷新完成时执行的逻辑 } } ``` 2. **application.properties(属性注入)(ConnectionSettings)**:配置文件中的属性可以通过注解方式注入到 Java 对象中。 ```java @ConfigurationProperties(prefix = "connection") public class ConnectionSettings { private String url; private String username; private String password; // getters 和 setters } ``` 3. **日志(WelcomeController)**:使用 Spring Boot 内置的日志框架记录日志。 ```java @RestController public class WelcomeController { private static final Logger logger = LoggerFactory.getLogger(WelcomeController.class); @GetMapping("/welcome") public String welcome() { logger.info("访问 welcome 页面"); return "欢迎使用 Spring Boot!"; } } ``` 4. **拦截器(MyFilter)**:实现 HandlerInterceptor 接口自定义拦截器。 ```java public class MyFilter implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 在处理请求之前执行 return true; // 返回 true 表示继续流程 } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // 处理请求完成后执行 } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // 渲染视图完成后执行 } } ``` 5. **代码改端口(CustomizationBean)**:通过 Bean 实现动态更改端口号。 ```java @Configuration public class CustomizationBean { @Bean public ServerPort serverPort() { return new ServerPort(8081); } } ``` 6. **Redis(MyRedis)**:使用 Redis 作为缓存服务。 ```java @Component public class MyRedis { @Autowired private RedisTemplate<String, Object> redisTemplate; public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object get(String key) { return redisTemplate.opsForValue().get(key); } } ``` 7. **SpringBoot 测试(SpringTest)**:编写单元测试验证功能正确性。 ```java @RunWith(SpringRunner.class) @SpringBootTest public class SpringTest { @Autowired private SomeService someService; @Test public void testSomeMethod() { String result = someService.doSomething(); assertEquals("expected result", result); } } ``` #### 五、项目启动 项目的启动通过 `SampleXmlApplication` 类中的 `main()` 方法实现。 ```java @SpringBootApplication public class SampleXmlApplication { public static void main(String[] args) { SpringApplication.run(SampleXmlApplication.class, args); } } ``` 通过以上内容,我们可以了解到如何使用 Spring Boot 快速搭建一个项目,并实现一些基本的功能,包括配置文件的使用、日志记录、拦截器的编写、Redis 的集成等。这些基础知识对于快速上手 Spring Boot 开发非常重要。