SpringCloud學習之路(一)-簡單Demo

首先,我們先在C:\Windows\System32\drivers\etc路徑下的hosts最后添加兩個地址用于模擬服務端以及消費端的IP

 
127.0.0.1 dept-8001.com #微服務端127.0.0.1 client.com #消費端

?

SpringCloud的一個最基礎Demo,本地真實模擬環境(服務的創建者以及消費者),這是我們Demo截圖:

分為一個parent(microcloud),三個Module分別是:microcloud-api,microcloud-consumer-80(消費者),microcloud-provider-dept-8001(服務的提供者)

以下是四個Maven項目各自源碼

  • 1.microcloud,新建一個pom的maven項目。

pom.xml

<?xml version="1.0" encoding="UTF-8"?><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>com.jmx</groupId><artifactId>microcloud</artifactId><version>0.0.1</version><packaging>pom</packaging><name>microcloud</name><url>http://maven.apache.org</url><properties><jdk.version>1.8</jdk.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencyManagement><dependencies><dependency><groupId>com.jmx</groupId><artifactId>microcloud-api</artifactId><version>0.0.1</version></dependency><dependency> <!-- 進行SpringCloud依賴包的導入處理 --><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR1</version><type>pom</type><scope>import</scope></dependency><dependency> <!-- SpringCloud離不開SpringBoot,所以必須要配置此依賴包 --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.5.4.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.0.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.31</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.0</version></dependency></dependencies></dependencyManagement><build><finalName>microcloud</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>${jdk.version}</source><!-- 源代碼使用的開發版本 --><target>${jdk.version}</target><!-- 需要生成的目標class文件的編譯版本 --><encode>${project.build.sourceEncoding}</encode></configuration></plugin></plugins></build><modules><module>microcloud-api</module><module>microcloud-provider-dept-8001</module><module>microcloud-consumer-80</module></modules></project>

?

  • 2.microcloud-api,類型為module的maven的項目,這個項目主要就放一些vo類

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jmx</groupId><artifactId>microcloud</artifactId><version>0.0.1</version></parent><groupId>com.jmx</groupId><artifactId>microcloud-api</artifactId><version>0.0.1</version><name>microcloud-api</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>

?

Dept.java

package com.jmx.vo;import java.io.Serializable;/**部門VO類* @author JMX**/@SuppressWarnings("serial")public class Dept implements Serializable {private Long deptno;private String dname;private String loc;public Long getDeptno() {return deptno;}public void setDeptno(Long deptno) {this.deptno = deptno;}public String getDname() {return dname;}public void setDname(String dname) {this.dname = dname;}public String getLoc() {return loc;}public void setLoc(String loc) {this.loc = loc;}@Overridepublic String toString() {return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + "]";}}

數據庫創建腳本-8001.sql,使用的是MySQL5.5

 
DROP DATABASE IF EXISTS "jmx8001" ;CREATE DATABASE jmx8001 CHARACTER SET UTF8 ;USE jmx8001 ;CREATE TABLE dept (deptno BIGINT AUTO_INCREMENT ,dname VARCHAR(50) ,loc VARCHAR(50) ,CONSTRAINT pk_deptno PRIMARY KEY(deptno)) ;INSERT INTO dept(dname,loc) VALUES ('開發部',database()) ;INSERT INTO dept(dname,loc) VALUES ('財務部',database()) ;INSERT INTO dept(dname,loc) VALUES ('市場部',database()) ;INSERT INTO dept(dname,loc) VALUES ('后勤部',database()) ;INSERT INTO dept(dname,loc) VALUES ('公關部',database()) ;
  • 3.*microcloud-provider-dept-8001這個是微服務的創建者,在這里我們要將SpringBoot整合Mybatis

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jmx</groupId><artifactId>microcloud</artifactId><version>0.0.1</version></parent><groupId>com.jmx</groupId><artifactId>microcloud-provider-dept-8001</artifactId><version>0.0.1</version><name>microcloud-provider-dept-8001</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.jmx</groupId><artifactId>microcloud-api</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency></dependencies></project>

?

Dept_8001_StartSpringCloudApplication.java

package com.jmx.microcloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/**程序主類* @author JMX**/@SpringBootApplicationpublic class Dept_8001_StartSpringCloudApplication {public static void main(String[] args) {SpringApplication.run(Dept_8001_StartSpringCloudApplication.class, args);}}

?

IDeptDao.java

package com.jmx.microcloud.dao;import java.util.List;import org.apache.ibatis.annotations.Mapper;import com.jmx.vo.Dept;@Mapperpublic interface IDeptDao {public boolean doCreate(Dept vo);public Dept findById(int id);public List<Dept>findAll();}

?

DeptRest.java

package com.jmx.microcloud.rest;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import com.jmx.microcloud.service.IDeptService;import com.jmx.vo.Dept;@RestControllerpublic class DeptRest {@Autowiredprivate IDeptService ideptService;@RequestMapping(value="/dept/get/{id}",method=RequestMethod.GET)public Dept get(@PathVariable(value="id")int id) {return ideptService.get(id);}@RequestMapping(value="/dept/add",method=RequestMethod.POST)public boolean add(@RequestBody Dept dept) {return ideptService.add(dept);}@RequestMapping(value="/dept/list",method=RequestMethod.GET)public List<Dept> list() {return ideptService.list();}}

?

IDeptService.java

package com.jmx.microcloud.service;import java.util.List;import com.jmx.vo.Dept;public interface IDeptService {public Dept get(int id);public boolean add(Dept dept);public List<Dept>list();}

?

DeptServiceImpl.java

package com.jmx.microcloud.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.jmx.microcloud.dao.IDeptDao;import com.jmx.microcloud.service.IDeptService;import com.jmx.vo.Dept;@Servicepublic class DeptServiceImpl implements IDeptService {@Autowiredprivate IDeptDao ideptdao;@Overridepublic Dept get(int id) {// TODO 自動生成的方法存根return ideptdao.findById(id);}@Overridepublic boolean add(Dept dept) {// TODO 自動生成的方法存根return ideptdao.doCreate(dept);}@Overridepublic List<Dept> list() {// TODO 自動生成的方法存根return ideptdao.findAll();}}

?

Dept.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.jmx.microcloud.dao.IDeptDao"><select id="findById" resultType="Dept" parameterType="int">SELECT deptno,dname,loc FROM dept WHERE deptno=#{deptno} ;</select><select id="findAll" resultType="Dept">SELECT deptno,dname,loc FROM dept ;</select><insert id="doCreate" parameterType="Dept">INSERT INTO dept(dname,loc) VALUES (#{dname},database()) ;</insert></mapper>

?

?

application.yml ????SpringBoot整合配置文件

server:port: 8001mybatis:config-location: classpath:mybatis/mybatis.cfg.xml # mybatis配置文件所在路徑type-aliases-package: com.jmx.vo # 定義所有操作類的別名所在包mapper-locations: # 所有的mapper映射文件- classpath:mybatis/mapper/**/*.xmlspring:datasource:type: com.alibaba.druid.pool.DruidDataSource # 配置當前要使用的數據源的操作類型driver-class-name: org.gjt.mm.mysql.Driver # 配置MySQL的驅動程序類url: jdbc:mysql://localhost:3307/jmx8001?useUnicode=true&characterEncoding=utf-8 # 數據庫連接地址username: root # 數據庫用戶名password: 123456 # 數據庫連接密碼dbcp2: # 進行數據庫連接池的配置min-idle: 5 # 數據庫連接池的最小維持連接數initial-size: 5 # 初始化提供的連接數max-total: 5 # 最大的連接數max-wait-millis: 200 # 等待連接獲取的最大超時時間

?

mybatis.cfg.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!-- 進行Mybatis的相應的環境的屬性定義 --><settings> <!-- 在本項目之中開啟二級緩存 --><setting name="cacheEnabled" value="true"/></settings></configuration>

?

logback.xml

<?xml version="1.0" encoding="UTF-8"?><configuration scan="true"><property name="APP" value="${project.artifactId}" /><property name="LOG_HOME" value="/data/www/log/${APP}" /><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern></encoder></appender><appender name="DETAIL"class="ch.qos.logback.core.rolling.RollingFileAppender" additivity="false"><File>${LOG_HOME}/${APP}_detail.log</File><encoder><pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd}</fileNamePattern></rollingPolicy></appender><appender name="ACCESS"class="ch.qos.logback.core.rolling.RollingFileAppender" additivity="false"><File>${LOG_HOME}/${APP}_access.log</File><encoder><pattern>%d{yy-MM-dd.HH:mm:ss.SSS};%X{ServiceId};%m%n</pattern></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/${APP}_access.log.%d{yyyyMMdd}</fileNamePattern></rollingPolicy></appender><logger name="ACCESS"><appender-ref ref="ACCESS" /></logger><logger name="druid.sql.Statement" level="DEBUG" /><logger name="com.jmx.microcloud.dao" level="TRACE" /><root level="INFO"><appender-ref ref="DETAIL" /><appender-ref ref="CONSOLE" /></root></configuration>

?

IDeptServiceTest.java,微服務測試類,在這里就不測試了,等會再瀏覽器里面測試.

package com.jmx.test;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.web.WebAppConfiguration;import com.jmx.microcloud.Dept_8001_StartSpringCloudApplication;import com.jmx.microcloud.service.IDeptService;import com.jmx.vo.Dept;@SpringBootTest(classes = Dept_8001_StartSpringCloudApplication.class)@RunWith(SpringJUnit4ClassRunner.class)@WebAppConfigurationpublic class IDeptServiceTest {@Autowiredprivate IDeptService ideptService;@Testpublic void testGet() {System.out.println(ideptService.get(1));}@Testpublic void testAdd() {Dept dept = new Dept() ;dept.setDname("測試部-" + System.currentTimeMillis());System.out.println(ideptService.add(dept));}@Testpublic void testList() {System.out.println(ideptService.list());}}

?

以上就是微服務的創建項目Demo,我們運行SpringBoot的Dept_8001_StartSpringCloudApplication.java

OK,我們的微服務創建者測試完畢

?

4.*microcloud-consumer-80這是我們的消費者

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>com.jmx</groupId><artifactId>microcloud</artifactId><version>0.0.1</version></parent><groupId>com.jmx</groupId><artifactId>microcloud-consumer-80</artifactId><version>0.0.1</version><name>microcloud-consumer-80</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.jmx</groupId><artifactId>microcloud-api</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency></dependencies></project>

?

?

Consumer_80_StartSpringCloudApplication.java

package com.jmx.microcloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Consumer_80_StartSpringCloudApplication {public static void main(String[] args) {SpringApplication.run(Consumer_80_StartSpringCloudApplication.class,args);}}

?

RestConfig.java

package com.jmx.microcloud.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.client.RestTemplate;@Configurationpublic class RestConfig {@Beanpublic RestTemplate getRestTemplate() {return new RestTemplate() ;}}

?

ConsumerDeptController.java

package com.jmx.microcloud.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;import com.jmx.vo.Dept;@RestControllerpublic class ConsumerDeptController {public static final String DEPT_GET_URL = "http://dept-8001.com:8001/dept/get/";public static final String DEPT_LIST_URL = "http://dept-8001.com:8001/dept/list/";public static final String DEPT_ADD_URL = "http://dept-8001.com:8001/dept/add";@Autowiredprivate RestTemplate restTemplate;@RequestMapping(value = "/consumer/dept/get")public Object getDept(long id) {Dept dept = restTemplate.getForObject(DEPT_GET_URL + id,Dept.class);return dept;}@SuppressWarnings("unchecked")@RequestMapping(value = "/consumer/dept/list")public Object listDept() {List<Dept> allDepts = this.restTemplate.getForObject(DEPT_LIST_URL,List.class);return allDepts;}@RequestMapping(value = "/consumer/dept/add")public Object addDept(Dept dept) {Boolean flag = this.restTemplate.postForObject(DEPT_ADD_URL, dept,Boolean.class);return flag;}}

?

application.yml

server:port: 80

?

這樣我們的消費者搭建好了

5.開始測試消費者是否調用微服務

分別運行

都運行成功后

?

我們看看數據庫里是否新增了數據

OK,最基礎的Demo已經搭建完成

以上內容轉載自https://blog.csdn.net/hsrlzg/article/details/79318312

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530438.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530438.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530438.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle數據庫數據泵導入導出

由于開發過程中有時候無法直接連數據庫&#xff0c;這時候需要將數據庫導入開發環境中&#xff0c;故此總結一個完整的數據庫導入導出過程。 注意expdp和impdp命令末尾都不能加分號 1 導出某個用戶的所有數據庫對象 1.1 Linux導出 su - oracle 授權用戶grant exp_full_data…

eclipse工作區打不開的解決方案

今天上班的時候發現eclipse打開總是閃退&#xff0c;剛開始以為是eclipse的問題&#xff0c;后來才發現是工作區的問題。 分享出來&#xff0c;希望能夠幫助遇到同樣問題的人。 1 設置詢問打開的工作區 eclipse安裝目錄\configuration\.settings\org.eclipse.ui.ide.prefs&a…

日期時間總結

今天總結一下日期時間如何處理&#xff0c;方便以后查看。 1 Oracle 1.1 日期格式參數及其含義說明 Oracle不區分大小寫&#xff0c;所以下面參數大小寫都可以 D 一周中的星期幾 DAY 天的名字&#xff0c;使用空格填充到9個字符 DD …

Oracle對象被鎖如何處理

1 查看被鎖住的對象 select object_name,machine,s.sid,s.SERIAL# from v$locked_object l,dba_objects o ,v$session s where l.object_id  o.object_id and l.session_ids.sid; 2 解鎖 將1中查詢出的sid和serial#&#xff0c;作為參數 alter system kill session 2400,…

BeycondCompare3破解綠色版下載

鏈接: https://pan.baidu.com/s/1GBtkLdqU7wTAzjvn2QfHrw 提取碼: rzcw 復制這段內容后打開百度網盤手機App&#xff0c;操作更方便哦

Oracle rowid和rownum的區別

rowid和rownum在本質上有區別&#xff1a; rowid rowid是物理結構上的&#xff0c;每插入一行數據&#xff0c;都會生成一條唯一的編號。可以說默認排序是根據rownum升序的&#xff0c;但是本質上還是根據rowid升序排列的。 rownum rownum可以說是偽列&#xff0c;并不存在&a…

Oracle/mysql聯合查詢union、union all

若無特殊說明&#xff0c;oracle與mysql均適用 使用場景 union、union all關鍵字用戶將兩個select查詢結果集合并成一個結果集&#xff0c;例如&#xff1a;一個舊系統使用a表&#xff0c;同樣的信息但是新系統使用了b表&#xff0c;這時候可以使用union或者union all關鍵字將…

【JAVA基礎篇】反射

一、反射的概念 是指在運行過程中&#xff0c;對于任意一個類&#xff0c;都能夠知道這個類的所有屬性和方法&#xff1b;對于任意一個對象&#xff0c;都能夠調用這個對象的所有方法和屬性。這種動態獲取信息和動態調用方法的功能稱為JAVA的反射機制。 二、反射的優缺點 2.…

在線工具

分享一下很實用的在線工具 在線HTTP接口測試 草料二維碼 站長之家

【JAVA基礎篇】面對對象的特征

面對對象的3大特征是&#xff1a;封裝、繼承和多態 封裝 封裝就是將客觀的事物封裝成抽象的類&#xff0c;這個類包含這類事物共同的特性和行為&#xff0c;特性對應類的成員變量&#xff0c;行為對應類的成員方法。 封裝就是將一批具有相同特性和行為的客觀事物封裝成抽象類…

【JAVA基礎篇】final、finally和finalize

final final表示最終的、不可被更改的&#xff0c;用來修飾類、成員方法和變量&#xff0c;通常處于兩方面的考慮來使用它&#xff1a;特殊的設計和效率。 final類 一個類如果確信沒有子類或者這個類的方法不允許修改&#xff0c;那么就把這個類定義成final類。 final類的成…

【JAVA基礎篇】抽象類和接口的區別

抽象類和接口是定義抽象概念的兩種方式&#xff0c;正是由于抽象類和接口&#xff0c;才賦予了Java強大的面向對象的能力。在討論他們的不同點之前&#xff0c;我們先來了解抽象類和接口。 抽象類 在面向對象的領域一切事物都是對象。對象都是通過類來描述的&#xff0c;但是反…

Oracle常用函數總結

Oracle函數&#xff0c;當任意一個參數為空字符串或者null時&#xff0c;結果返回null 聚合函數 count 使用方式有5種 select count(*) from student;--統計總行數 select count(0) from student;--統計總行數,括號里面的0表示什么意思&#xff1f; select count(id) from …

【JAVA基礎篇】==、equals和hashCode的區別和聯系

作用&#xff1a;比較兩個操作數的關系&#xff0c;返回一個boolean類型的結果 具體含義&#xff1a;如果兩個操作數是基本數據類型&#xff0c;比較值是否相等。如果兩個操作數是引用類型&#xff0c;那么比較的是內存地址是否相同。 equals Object類的實例方法&#xff0c…

【JAVA基礎篇】內部類

定義在一個類內部的類稱為內部類。內部類訪問權限可以是public、protected、default或private&#xff0c;可以聲明為abstract供其他內部類或外部類繼承&#xff0c;可以聲明為static、final&#xff0c;也可以實現特定的接口。外部類可以訪問內部類的所有方法與屬性&#xff0…

【JAVA基礎篇】訪問權限

所謂訪問權限&#xff0c;指的是本類的成員變量、成員方法和內部類對其他類的可見性。 四種訪問權限 Java一共有四種訪問權限&#xff0c;按照權限由大到小分別為public、protected、default和private&#xff0c;如果省略了訪問修飾符&#xff0c;那訪問權限就是defualt。四…

Oracle存儲過程

什么是存儲過程 存儲過程是一組為了完成特定功能的SQL語句&#xff0c;經編譯后存在數據庫&#xff0c;存儲過程是數據庫中的一個重要對象。 ps:有人說&#xff1a;任何一個設計良好的數據庫應用程序都應該用到存儲過程&#xff0c;我覺得這個不一定&#xff0c;其實很多互聯…

解決debug JDK source無法查看局部變量的問題

首先進入傳送門&#xff1a;https://blog.csdn.net/majian_1987/article/details/51273609 進行上面的操作之后&#xff0c;這個時候我們來debug一下jdk源碼&#xff0c;發現可以查看局部變量。但是這時候又發現一個問題&#xff0c;在我自己的代碼里按住ctrl鼠標左鍵單擊無法…

【JAVA基礎篇】多線程

學習Java的多線程知識之前&#xff0c;我們先來了解一下進程和線程的概念&#xff0c;以及他們之間的關系。 進程 基本概念 進程是具有獨立功能的程序在某個數據集合上的一次執行過程。 特點 進程是操作系統進行資源分配的基本單位。每個進程都有自己的地址空間&#xff0…

配置JAVA開發環境

1、首先去Oracle官方網站下載所需版本的JDKhttp://java.sun.com/products/archive/&#xff0c;然后安裝&#xff0c;其實只需要安裝jdk就可以了&#xff0c;不需要安裝jre 2、按照后配置環境變量JAVA_HOME 然后在path最前面添加%JAVA_HOME%\bin; 3、cmd中輸入java -version,提…