springboot实战(汪云飞)学习-1-1

java EE开发的颠覆者 spring boot 实战 随书学习-1

1.学习案例都是maven项目,首先要在eclipse 中配置 maven,主要修改maven的配置文件:配置文件下载链接: https://github.com/liuch0228/springboot-wangyunfei-learn ,最主要的是修改镜像地址,这里使用阿里云的镜像:

 1 <mirrors>
 2     <!-- mirror
 3      | Specifies a repository mirror site to use instead of a given repository. The repository that
 4      | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
 5      | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
 6      |
 7     <mirror>
 8       <id>mirrorId</id>
 9       <mirrorOf>repositoryId</mirrorOf>
10       <name>Human Readable Name for this Mirror.</name>
11       <url>http://my.repository.com/repo/path</url>
12     </mirror>
13      -->
14      <mirror>
15             <id>aliyun</id>
16             <name>aliyun Maven</name>
17             <mirrorOf>*</mirrorOf>
18             <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
19      </mirror>
20   </mirrors>

2. 新建一个maven项目

pom文件修改,添加spring相关依赖

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3     <modelVersion>4.0.0</modelVersion>
 4     <groupId>com.wisely</groupId>
 5     <artifactId>highlight-spring4</artifactId>
 6     <version>0.0.1-SNAPSHOT</version>
 7
 8     <!-- 在properties中定义一个名字为java.version的变量,在dependency中引用 -->
 9     <properties>
10         <java.version>1.7</java.version>
11     </properties>
12     <!-- 添加pom依赖 -->
13     <dependencies>
14     <!-- 添加spring-context依赖 -->
15         <dependency>
16             <groupId>org.springframework</groupId>
17             <artifactId>spring-context</artifactId>
18             <version>4.1.6.RELEASE</version>
19         </dependency>
20
21         <!-- 添加AOP依赖 -->
22         <dependency>
23             <groupId>org.springframework</groupId>
24             <artifactId>spring-aop</artifactId>
25             <version>4.1.6.RELEASE</version>
26         </dependency>
27         <!-- 添加AspectJ依赖 -->
28         <dependency>
29             <groupId>org.aspectj</groupId>
30             <artifactId>aspectjrt</artifactId>
31             <version>1.8.5</version>
32         </dependency>
33         <dependency>
34             <groupId>org.aspectj</groupId>
35             <artifactId>aspectjweaver</artifactId>
36             <version>1.8.5</version>
37         </dependency>
38     </dependencies>
39
40     <!-- 编译插件依赖 -->
41     <build>
42         <plugins>
43             <plugin>
44                 <groupId>org.apache.maven.plugins</groupId>
45                 <artifactId>maven-compiler-plugin</artifactId>
46                 <version>2.3.2</version>
47                 <configuration>
48                     <source>${java.version}</source> <!-- 通过变量指定编译源代码使用的jdk版本 -->
49                     <target>${java.version}</target> <!-- 通过变量指定目标代码使用的jdk版本 -->
50                 </configuration>
51             </plugin>
52         </plugins>
53     </build>
54
55 </project>

改完保存后,鼠标右键单击项目,maven  update project,下载依赖jar包:

3.依赖注入示例:

3.1  FunctionService 类

 1 package com.wisely.highlight_spring4.ch1.di;
 2
 3 import org.springframework.stereotype.Service;
 4 /**
 5  * 定义功能类的bean
 6  * @Service注解声明当前FunctionService类是spring管理的一个bean
 7  * 声明bean的注解还有:
 8  * @Repository 数据访问层使用
 9  * @Controller 展现层使用
10  * @Component  声明被spring管理的组件(也就是自动注入spring容器),没有明确角色
11  * @author Administrator
12  *
13  */
14 @Service
15 public class FunctionService {
16
17     public String sayHello(String word) {
18         return "hello " + word + " !";
19     }
20
21 }
3.2 UseFunctionService 类
 1 package com.wisely.highlight_spring4.ch1.di;
 2
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.stereotype.Service;
 5 /**
 6  * 声明使用功能类FunctionService的bean
 7  * @Service 声明UseFunctionService类是spring管理的一个Bean
 8  * @author Administrator
 9  *
10  */
11 @Service
12 public class UseFunctionService {
13     /*@Autowired 把FunctionService的实体bean注入到UseFunctionService类中
14      * 让UseFunctionService具备FunctionService的功能 ———— 组合关系
15      * */
16     @Autowired
17     private FunctionService functionService;
18
19     public String sayHello(String word) {
20         return functionService.sayHello(word);
21     }
22
23 }
3.3 Java配置类java配置是spring4.x推荐的配置方式,可以完全替代xml配置,也是springboot推荐的配置方式。Java 配置是通过@Configuration和@Bean来实现的。
@Configuration 声明当前类是一个配置类 ,@ComponentScan 注解自动扫描指定包下的所有使用@Service @Component @Repository 和@Controller的类,将它们注册为spring的Bean
 1 package com.wisely.highlight_spring4.ch1.di;
 2
 3 import org.springframework.context.annotation.ComponentScan;
 4 import org.springframework.context.annotation.Configuration;
 5 /**
 6  * spring配置类
 7  * @Configuration 声明当前类是一个配置类
 8  * @ComponentScan 注解自动扫描指定包下的所有使用@Service @Component @Repository
 9  * 和@Controller的类,并注册为Bean
10  * @author Administrator
11  *
12  */
13 @Configuration
14 @ComponentScan("com.wisely.highlight_spring4.ch1.di")
15 public class DiConfig {
16
17 }

主测试类:获取spring容器实例context ,然后拿context获取注册的bean, 调用bean的方法

 1 package com.wisely.highlight_spring4.ch1.di;
 2
 3 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 4
 5 public class MainTest {
 6
 7     public static void main(String[] args) {
 8         //1.使用AnnotationConfigApplicationContext最为spring容器,接受一个配置类作为参数
 9         AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DiConfig.class);
10         //2.获得声明配置的UseFunctionService 的bean
11         UseFunctionService useFunctionService = context.getBean(UseFunctionService.class);
12         //3.调用bean的方法
13         System.out.println(useFunctionService.sayHello("world"));
14         context.close();
15     }
16
17 }

运行结果如下:

原文地址:https://www.cnblogs.com/enjoyjava/p/9114030.html

时间: 2024-11-10 12:34:25

springboot实战(汪云飞)学习-1-1的相关文章

springboot实战(汪云飞)学习-1-2

java EE开发的颠覆者 spring boot 实战 随书学习-1 接上一篇,Java配置的学习(还是上一篇的项目中,添加新的包和代码): java配置是spring4.x推荐的配置方式,可以完全替代xml配置,也是springboot推荐的配置方式.Java 配置是通过@Configuration和@Bean来实现的. @Configuration 声明当前类是一个配置类 ,通过@ComponentScan 注解自动扫描指定包下的所有使用@Service @Component @Repos

5.4任务进展情况(整理——郑云飞)

团队成员 昨日任务完成情况 To do doing done 遇到的问题 汪洋 完成 将修改的界面与功能相结合 改善界面的出现情况,有时是seekbar(选择人数的地方)的使用,它出现的位置情况 杀人游戏的人数修改 -- 韩亚华 未完成 实现转速的递减 实现转速的递减 --实现随机转的圈数 -- 辛垧 完成 项目界面的完成 谁是卧底界面的修改 主界面的设计与完善 郑云飞 完成 谁是卧底人数组合选择 词汇选择与匹配优化 词汇间切换 -- 祁子梁 完成 Pose王图片显示方法实现 Pose王图片随机

4.28任务进展情况(整理——郑云飞)

团队成员 昨日任务完成情况 To do doing done 遇到的问题 汪洋 完成 -- 韩亚华 完成 -- 辛垧 完成 设计pose王的界面 郑云飞 发表博客 -- 祁子梁 完成 Pose王图片显示方法学习 Pose王图片随机出现的调用 -- 段兴林 完成 继续学习视频,增加投入时间还有partyplay alphe版的测试 收集pose王图片,学习关于pose王视频 -- 4.28任务进展情况(整理--郑云飞),布布扣,bubuko.com

【IT名人堂】何云飞:阿里云数据库的架构演进之路

[IT名人堂]何云飞:阿里云数据库的架构演进之路 原文转载自:IT168 ? 如果说淘宝革了零售的命,那么DT革了企业IT消费的命.在阿里巴巴看来,DT时代,企业IT消费的模式变成了“云服务+数据”,阿里云将打造一个像淘宝电商一样多方共赢的云生态.而作为阿里云庞大帝国的重要成员,阿里云RDS为社交网站.电子商务网站.手机App提供了可靠的数据存储服务.好的架构不是设计出来的,而是演化出来的,那么RDS经历了怎样的架构演进?本期名人堂我们邀请到了阿里云RDS首席产品架构师何云飞,为我们揭秘RDS的

SpringBoot实战 之 异常处理篇

在互联网时代,我们所开发的应用大多是直面用户的,程序中的任何一点小疏忽都可能导致用户的流失,而程序出现异常往往又是不可避免的,那该如何减少程序异常对用户体验的影响呢?其实方法很简单,对异常进行捕获,然后给予相应的处理即可.但实现的方式却有好多种,例如: try { ... } catch (Exception e) { doSomeThing(); } 像这种标准的 try-catch 是可以解决问题,但如果让你在每个接口实现里面都 try-catch 一下,我想你应该是不太愿意的.那么下面来介

重磅发布-SpringBoot实战实现分布式锁视频教程

概要介绍:历经一个月的时间,我录制的分布式锁实战之SpringBoot实战实现系列完整视频教程终于出世了!在本课程中,我分享介绍了分布式锁出现的背景.实现方式以及将其应用到实际的业务场景中,包括"重复提交"."CRM系统销售人员抢单",并采用当前相当流行的微服务SpringBoot来搭建项目实战实现分布式锁. 课程学习:目前博主已将分布式锁实现以及实际业务场景实战的要点整理成课程,感兴趣的童鞋可以前往学习:http://edu.51cto.com/course/15

SpringBoot实战实现分布式锁一之重现多线程高并发场景

实战前言:上篇博文我总体介绍了我这套视频课程:"SpringBoot实战实现分布式锁" 总体涉及的内容,从本篇文章开始,我将开始介绍其中涉及到的相关知识要点,感兴趣的小伙伴可以关注关注学习学习!!工欲善其事,必先利其器,介绍分布式锁使用的前因后果之前,得先想办法说清楚为啥需要分布式锁以及如何才需要将分布式锁搬上用场!!其中,该课程的学习链接:http://edu.51cto.com/course/15684.html感兴趣的童鞋可以前往观看学习!!! 实战概要:故而此文将介绍一下分布式

apollo客户端springboot实战(四)

1. apollo客户端springboot实战(四) 1.1. 前言 ??经过前几张入门学习,基本已经完成了apollo环境的搭建和简单客户端例子,但我们现在流行的通常是springboot的客户端,所以这章还是来学习下springboot客户端如何和apollo整合 ??接下来我来改造我自己的项目,我本来的项目接入的是spring config配置管理中心,读的git上的配置,它没有管理界面,功能也比较单一,所以我打算替换成apollo 1.2. 配置改动 添加配置类,这个@EnableAp

Azure云平台学习之路(三)——Cloud Services

1.什么是云服务? 能够部署高度可用的且可无限缩放的应用程序和API.简而言之,就是你写的CMD程序按照一定的框架进行少量修改就能运行在Azure云平台上. 2.Azure云服务有什么特点? (1)专注应用程序而不是硬件,PaaS的一种. (2)支持多种框架和语言. (3)集成了运行状况监视和负载平衡. (4)自动缩放优化成本和性能 3.建立云服务之前,我们需要建立一个云存储,来记录我们的程序的日志信息(当然,这不是必须的) (1)选择左边导航栏的"存储".主面板上显示的是所有已有的存