当前位置: 首页 > news >正文

网站怎么做百度推广课题组网站怎么做

网站怎么做百度推广,课题组网站怎么做,企石镇网站建设,山东济宁Spring 约定编程案例与示例 案例 1:组件自动扫描(ComponentScan) 描述:通过包路径约定自动扫描组件,无需逐个配置Bean。 代码示例: // 1. 目标组件(无需XML配置) Component // 使…

Spring 约定编程案例与示例


案例 1:组件自动扫描(@ComponentScan

描述:通过包路径约定自动扫描组件,无需逐个配置Bean。

代码示例

// 1. 目标组件(无需XML配置)
@Component // 使用Spring标准注解
class MyService {public void sayHello() {System.out.println("Hello from MyService!");}
}// 2. 配置类(约定包路径)
@Configuration
@ComponentScan("com.example.service") // 自动扫描该包下所有组件
public class AppConfig {}// 3. 运行类
public class Main {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);MyService service = context.getBean(MyService.class);service.sayHello(); // 输出:Hello from MyService!}
}

案例 2:REST 控制器映射(@RestController

描述:通过注解约定自动映射HTTP请求,无需XML配置。

代码示例

// 1. 控制器类(约定路径前缀)
@RestController
@RequestMapping("/api") // 根路径约定
class UserController {@GetMapping("/users") // URL路径约定public String getUsers() {return "User list endpoint";}
}// 2. 启动类(Spring Boot约定)
@SpringBootApplication // 自动配置Web环境
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}// 运行后访问 http://localhost:8080/api/users 返回 "User list endpoint"

案例 3:Spring Boot 自动配置(@SpringBootApplication

描述:通过注解约定自动配置内嵌服务器、组件扫描等。

代码示例

// 1. 主启动类(单文件约定)
@SpringBootApplication // 包含@ComponentScan和@EnableAutoConfiguration
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}// 2. 自动注册Bean(无需XML)
@Component
class AutoConfiguredBean {public AutoConfiguredBean() {System.out.println("Auto-configured bean initialized!");}
}// 启动时自动输出:Auto-configured bean initialized!

案例 4:JPA 实体类命名约定

描述:通过实体类命名约定自动关联数据库表名。

代码示例

// 1. 实体类(表名约定)
@Entity
public class User { // 表名默认为 "user"@Id@GeneratedValueprivate Long id;private String name;// getters/setters
}// 2. Spring Data JPA 接口(方法名约定)
public interface UserRepository extends JpaRepository<User, Long> {List<User> findByName(String name); // 自动生成SQL查询
}// 3. 使用示例
@Service
public class UserService {@Autowiredprivate UserRepository repository;public List<User> findUsersByName(String name) {return repository.findByName(name);}
}

案例 5:日志记录约定(@Slf4j

描述:通过Lombok注解约定自动注入日志对象。

代码示例

// 1. 添加Lombok依赖(pom.xml)
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version><scope>provided</scope>
</dependency>// 2. 使用注解约定
@Slf4j // 自动生成日志对象 "log"
@Component
public class MyService {public void doWork() {log.info("Processing task..."); // 直接使用log对象}
}

案例总结表

案例名称核心约定代码关键点核心注解/配置
组件自动扫描通过包路径约定自动注册Bean@ComponentScan("包路径") + @Component注解的类自动被扫描@ComponentScan, @Component
REST 控制器映射通过注解约定HTTP方法和路径@RestController + @RequestMapping/@GetMapping等路径映射注解@RestController, @RequestMapping
Spring Boot 自动配置通过注解启用内嵌服务器、组件扫描和自动配置@SpringBootApplication等效于 @Configuration, @ComponentScan, @EnableAutoConfiguration@SpringBootApplication
JPA 实体类命名实体类名默认对应数据库表名(如 User 对应表 user@Entity注解的类名自动映射为小写表名@Entity, Spring Data JPA方法名约定
Lombok 日志约定通过注解自动生成日志对象(无需手动创建Logger@Slf4j注解自动生成log对象@Slf4j (Lombok)

关键约定说明
  1. 包路径约定:组件扫描默认从主类所在包及子包开始扫描。
  2. REST路径约定@RequestMapping的路径前缀可复用,方法名如saveUser自动映射为/save-user
  3. Spring Boot 自动配置@SpringBootApplication会自动启用内嵌Tomcat、静态资源处理等。
  4. JPA 方法名约定findByName等方法名按规则自动生成查询SQL。
  5. Lombok注解:通过注解自动生成setter/getter、构造函数等代码。
http://www.dtcms.com/a/545402.html

相关文章:

  • 前端React实战项目 全球新闻发布系统
  • 【React】 严格模式的 “双重执行” 机制,useEffect 执行两次
  • 使用 ngrok 在本地测试 Paddle Webhook 教程
  • React 入门 01:快速写一个React的HelloWorld项目
  • 地方旅游网站建设必要性网站怎么做站内美化
  • 设计网站栏目wordpress 三一重工
  • 黄冈网站建设策划海口建网站公司
  • 电子元器件学习-DC-DC篇:原理、拓扑结构、参数接收、手册解读、外围器件选型、Layout设计案例分析
  • SSD和HDD存储应该如何选择?
  • wordpress 博客 免费主题哈尔滨关键词优化方式
  • 河北网站排名网站内置字体
  • Yocto —— Linux Kernel 配置和修改
  • Rust结构体:数据组织的优雅范式与实例化实践
  • 【Harmony】鸿蒙相机拍照使用简单示例
  • 论文笔记:“Mind the Gap Preserving and Compensating for the Modality Gap in“
  • 国产光学软件突破 | 3D可视化衍射光波导仿真
  • 仓颉语言中的Option类型与空安全处理:深度解析与实践
  • 无穷级数概念
  • mysql的事务、锁以及MVCC
  • [Dify 实战] 使用插件实现内容抓取与格式转换流程:从网页到结构化输出的自动化方案
  • 李宏毅机器学习笔记35
  • 类和对象深层回顾:(内含面试题)拷贝构造函数,传值返回和传引用返回区别
  • Rust环境搭建
  • 潍坊做网站价格个人网页设计软件
  • LeetCode 刷题【138. 随机链表的复制】
  • 做可转债好的网站wordpress不用邮件确认
  • Rust 中的减少内存分配策略:从分配器视角到架构设计 [特殊字符]
  • MySQL8.0.30 版本中redo log的变化
  • 0430. 扁平化多级双向链表
  • 网站关键词多少合适icp备案服务码