1. spring的发展
spring1.x
通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分配到不同的配置文件中,需要在java类和xml配置文件中切换。
spring2.x
JDK1.5带来注解的支持,可以使用注解对Bean进行申明和注入,大大减少xml配置,大大简化了项目的开发。应用的基本配置用xml,如数据源、资源文件等,业务开发用注解,如:service中注入bean等。
spring3.x到spring4.x
从3开始提供了java配置方式,使用java配置方式可以更好理解配置的bean,4和springboot都推荐使用java配置的方式。
2. java配置方式
新建一个类xxxConfig,@Configuration 来表明该类是一个Spring的配置,相当于一个xml文件, 通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值。
@Configuration
@ComponentScan(basePackages = "xx.xx.xx.xx") //配置扫描包
@PropertySource(value= {"classpath:jdbc.properties"})
public class SpringConfig {
@Value("${jdbc.url}")
private String jdbcUrl;
@Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
public DataSource dataSource(){
return new BoneCPDataSource(); // 直接new对象做演示
}
}
3. springboot
快速构建项目,对主流开发框架无配置集成,项目可独立运行,无须外部依赖Servlet容器,提供运行时的应用监控,极大地提高了开发/部署效率,与云计算天然集成。
springboot项目必须要将parent设置为spring boot的parent,该parent包含了大量默认的配置,大大简化了我们的开发。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
导入web支持
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
添加插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
应用:
@Controller
@SpringBootApplication
@Configuration
public class HelloApplication {
@RequestMapping("hello")
@ResponseBody
public String hello(){
return "hello world!";
}
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
代码说明:
1、@SpringBootApplication:Spring Boot项目的核心注解,主要目的是开启自动配置;
2、@Configuration:这是一个配置Spring的配置类;
3、@Controller:标明这是一个SpringMVC的Controller控制器;
4、main方法:在main方法中启动一个应用,即:这个应用的入口;
项目启动直接run 或 debug即可。
Spring Boot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到resources下。
修改Tomcat的端口为8088:server.port=8088
Spring Boot对各种日志框架都做了支持,我们可以通过配置来修改默认的日志的配置:
#设置日志级别
logging.level.org.springframework=DEBUG
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗