Springboot原理介绍(附代码)
2018-03-15 09:33
337 查看
1.今日大纲
1、了解Spring的发展2、掌握Spring的java配置方式
3、学习Spring Boot
4、使用Spring Boot来改造购物车系统
2.Spring的发展
2.1.Spring1.x 时代
在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xml配置文件中切换。2.2.Spring2.x时代
随着JDK 1.5带来的注解支持,Spring2.x可以使用注解对Bean进行申明和注入,大大的减少了xml配置文件,同时也大大简化了项目的开发。那么,问题来了,究竟是应该使用xml还是注解呢?
最佳实践:
1、应用的基本配置用xml,比如:数据源、资源文件等;
2、业务开发用注解,比如:Service中注入bean等;
2.3.Spring3.x到Spring4.x
从Spring3.x开始提供了Java配置方式,使用Java配置方式可以更好的理解你配置的Bean,现在我们就处于这个时代,并且Spring4.x和Spring boot都推荐使用java配置的方式。3.Spring的Java配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置。3.1.@Configuration 和 @Bean
Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的:1、@Configuration 作用于类上,相当于一个xml配置文件;
2、@Bean 作用于方法上,相当于xml配置中的;
3.2.示例
该示例演示了通过Java配置的方式进行配置Spring,并且实现了Spring IOC功能。3.2.1.创建工程以及导入依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.itcast.springboot</groupId> <artifactId>itcast-springboot</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.7.RELEASE</version> </dependency> <!-- 连接池 --> <dependency> <groupId>com.jolbox</groupId> <artifactId>bonecp-spring</artifactId> <version>0.8.0.RELEASE</version> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <!-- 资源文件拷贝插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- java编译插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> <pluginManagement> <plugins> <!-- 配置Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </pluginManagement> </build> </project>
3.2.2.编写User对象
public class User { private String username; private String password; private Integer age; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
3.2.3.编写UserDAO 用于模拟与数据库的交互
public class UserDAO { public List<User> queryUserList(){ List<User> result = new ArrayList<User>(); // 模拟数据库的查询 for (int i = 0; i < 10; i++) { User user = new User(); user.setUsername("username_" + i); user.setPassword("password_" + i); user.setAge(i + 1); result.add(user); } return result; } }
3.2.4.编写UserService 用于实现User数据操作业务逻辑
@Service public class UserService { @Autowired // 注入Spring容器中的bean对象 private UserDAO userDAO; public List<User> queryUserList() { // 调用userDAO中的方法进行查询 return this.userDAO.queryUserList(); } }
3.2.5.编写SpringConfig 用于实例化Spring容器
@Configuration //通过该注解来表明该类是一个Spring的配置,相当于一个xml文件 @ComponentScan(basePackages = "cn.itcast.springboot.javaconfig") //配置扫描包 public class SpringConfig { @Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean> public UserDAO getUserDAO(){ return new UserDAO(); // 直接new对象做演示 } }
3.2.6.编写测试方法 用于启动Spring容器
public class Main { public static void main(String[] args) { // 通过Java配置来实例化Spring容器 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); // 在Spring容器中获取Bean对象 UserService userService = context.getBean(UserService.class); // 调用对象中的方法 List<User> list = userService.queryUserList(); for (User user : list) { System.out.println(user.getUsername() + ", " + user.getPassword() + ", " + user.getPassword()); } // 销毁该容器 context.destroy(); } }
3.2.7.测试效果
3.2.8.小结
从以上的示例中可以看出,使用Java代码就完美的替代xml配置文件,并且结构更加的清晰。相关文章推荐
- SpringBoot2.x参考指南(中文版) 第一部分 SpringBoot文档介绍
- SpringBoot中Redis的set、map、list、value、实体类等基本操作介绍
- 【SpringBoot】Spring Boot热部署( 第1章 课程介绍 第2章 热部署与热加载 )
- 加密原理介绍,代码实现DES、AES、RSA、Base64、MD5
- Spring Boot定时任务的使用实例代码
- 【SpringBoot】Spring Boot进阶之Web进阶( 第1章 课程介绍 第2章 Web进阶-表单验证 )
- 详解spring boot应用启动原理分析
- spring boot应用启动原理分析
- SpringBoot事件和生命周期原理
- SpringBoot系列: 使用MyBatis maven插件自动生成java代码
- Spring Boot 实现Restful webservice服务端示例代码
- 41. Spring Boot 使用Java代码创建Bean并注册到Spring中【从零开始学Spring Boot】
- spring boot框架接受http请求并处理的代码公式
- U-boot-2009.03移植之六:对一些关键标号的理解以及start.s中代码重定向原理
- Spring Boot/VUE中路由传递参数的实现代码
- springboot - 集成kafka完整代码实现
- [置顶] spring boot项目实战之公共代码抽取
- Spring Boot学习(一)——框架介绍
- Spring Boot starter介绍
- Spring AOP的实现原理详解及代码实例