当前位置:首页 » 云服务器 » boot服务器搭建

boot服务器搭建

发布时间: 2022-12-27 07:15:39

① 如何构建spring boot

Spring Boot充分利用了javaConfig的配置模式以及“约定优于配置”的理念,能够极大的简化基于Spring
MVC的Web应用和REST服务开发。

Spring
4倡导微服务的架构,针对这一理念,近来在微博上也有一些有价值的讨论,如这里和这里。微服务架构倡导将功能拆分到离散的服务中,独立地进行部署,Spring
Boot能够很方便地将应用打包成独立可运行的JAR包,因此在开发模式上很契合这一理念。目前,Spring
Boot依然是0.5.0的里程碑版本,因此相关的文档尚不完善,本文将会以一个简单的样例来介绍基于这个项目的开发过程。

要Spring
Boot进行功能开发,需要使用Gradle或者Maven作为构建工具。在本例中,我们会使用Eclipse和Maven插件进行开发。要使用Spring
Boot,首先创建一个Maven工程,并修改Maven主要的配置文件pom.xml,如下所示:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>0.5.0.M7</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring3</artifactId>
</dependency>
</dependencies>

<properties>
<start-class>com.levin.Application</start-class>
</properties>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

<repositories>
<repository>
<id>spring-milestone</id>
<url>http://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>spring-milestone</id>
<url>http://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>

在上面的配置中,需要将工程的parent设置为spring-boot-starter-parent,并添加对spring-boot-starter-web的依赖,这样我们就无需设置各个依赖项及其版本信息了。并且在构建中要声明使用spring-boot-maven-plugin这个插件,它会对Maven打包形成的JAR进行二次修改,最终产生符合我们要求的内容结构。

在我们的应用中将要发布一个REST服务,显示一个基本的用户信息,首先定义一个简单的模型类:

package com.levin;

public class Person {
private String name;
private String email;

public Person(String name, String email) {
this.name = name;
this.email = email;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}

}

接下来,我们需要声明一个Spring MVC的Controller,响应对实体的请求:
@Controller
public class ShowPersonController {
@RequestMapping("/showPerson")
public @ResponseBody Person showPerson() {
return new Person("levinzhang","[email protected]");
}
}

这个类与我们在使用Spring MVC定义Controller时并无任何差别。接下来,我们需要声明一个主类启动这个应用程序:
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

这个类的main方法中使用了SpringApplication帮助类,并以Application这个类作为配置来启动Spring的应用上下文。在这个类中使用了ComponentScan以及EnableAutoConfiguration注解,其中ComponentScan注解会告知Spring扫描指定的包来初始化Spring
Bean,这能够确保我们声明的Bean能够被发现。EnableAutoConfiguration将会启动自动配置模式,在我们的配置中会将对Tomcat的依赖级联进来,因此在应用启动时将会自动启动一个嵌入式的Tomcat,因为在样例中使用了Spring
MVC,所以也会自动注册所需的DispatcherServlet,这都不需要类似web.xml这样的配置。

在Eclipse中要运行这个应用的话,可以直接以Java
Application的形式来运行这个main函数,此时会启动应用,我们在浏览器中可以看到如下的运行效果,这就是我们想要的REST服务:

在开发调试完成之后,可以将应用打成JAR包的形式,在Eclipse中可以直接使用Maven插件的package命令,最终会形成一个可运行的JAR包。我们使用java
–jar命令就可以运行这个JAR包了。所呈现出的效果与在调试期是一样的。现在看一下这个JAR包解压后的目录结构:

这个JAR包与传统JAR包的不同之处在于里面有一个名为lib的目录,在这个目录中包含了这个简单应用所依赖的其他JAR包,其中也包含内置的嵌入式Tomcat,正是使用它,才能发布服务和访问Web资源。除了我们编写的源码编译形成的CLASS以外,在org目录下还有许多Spring所提供的CLASS,正是依赖这些CLASS,才能够加载位于lib目录下JAR中的类。这样的加载机制与在OSGi
bundle中声明Bundle-Classpath很类似,不过在OSGi中会由容器来负责加载指定路径下的类。这大致阐述了这样一个JAR包能够发布服务的原因。

如果我们想要使用HTML、JSP等Web资源的话,在Controller中直接返回对应的视图就可以了。

如果我们想要将这个JAR包转换成可以在Servlet容器中部署的WAR的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,此时我们需要声明这样一个类:
public class HelloWebXml extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}

}

这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似,只不过在这里不需要编写额外的XML文件了。

如果要将最终的打包形式改为WAR的话,还需要对pom.xml文件进行修改,除了需要将packaging的值修改为war以外,还需要对依赖进行适当的配置(这一部分在Spring
Boot的样例和文档中均未提及,提醒大家注意):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>

在这里需要移除对嵌入式Tomcat的依赖,这样打出的WAR包中,在lib目录下才不会包含Tomcat相关的JAR包,否则将会出现启动错误。另外,在移除对Tomcat的依赖后,为了保证编译正确,还需要添加对servlet-api的依赖,因此添加如下的配置:

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>7.0.42</version>
<scope>provided</scope>
</dependency>

在这里将scope属性设置为provided,这样在最终形成的WAR中不会包含这个JAR包,因为Tomcat或Jetty等服务器在运行时将会提供相关的API类。此时,执行mvn
package命令就会得到一个WAR文件,我们可以直接将其放到Tomcat下运行(需要7.0.42版本以上)。

以上介绍了基于Spring Boot开发应用的过程,目前它的文档尚不完善,但是在GitHub上有不少的样例,包括与Spring
Data集成访问数据库(关系型以及非关系型)、安全、WebSocket等,读者感兴趣可以下载运行,需要注意的是有些样例中使用的是0.5.0.M6版本,这个版本有问题,运行时会出错,建议手动修改为0.5.0.M7或快照版本。

基于以上的介绍,希望读者能够对Spring
Boot这个新项目有所了解。它简化了JAR包管理和相关基础设施环境的配置,能够帮助我们快速开发Web应用或构建REST服务,希望它能够尽快完善成熟,更多地用于实践,提升开发效率。

② 树莓派搭建文件服务器

https://www.raspberrypi.org/downloads/raspberry-pi-os/

安装 Etcher 之后启动 Etcher,插入 SD 卡、选择要安装的 img 文件、选择 SD 卡对应的磁盘分区
https://www.balena.io/etcher/

① 新建一个ssh空白文件,放到root目录下,树莓派开机会自动启用
② 网络优先选择有线网络
③ 无线网络
将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot 目录下新建

具体详情看下面
https://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html

方法1:利用路由器软件查看IP地址

方法2:

ssh连接默认用户名:pi 密码:raspberry

方法3:IP Scanner

1.切换 root权限 sudo su
2.编辑下列文件

连接raw.githubusercontent.com失败
step1 :
在 https://site.ip138.com/raw.Githubusercontent.com/
输入raw.githubusercontent.com查询IP地址
step2 :
sudo nano /etc/hosts
你查到的ip地址,香港的就行 raw.githubusercontent.com
比如:
151.101.76.133 raw.githubusercontent.com

OpenMediaVault项目地址:
https://github.com/OpenMediaVault-Plugin-Developers/installScript

执行安装脚本

step1:
输入树莓派的IP地址
初始用户名:admin
密码:openmediavault
step2:
1.连接硬盘
2.文件系统—>卸载硬盘
3.磁盘—>擦除
4.文件系统—>新建 文件系统选择EXT4
5.挂载—>应用
6.共享文件夹—>新建一个文件夹 设置权限
7.SMB/CIFS —>启用
8.共享—>添加共享

mac登陆
前往:连接服务器 smb://树莓派的ip地址
windows
我的电脑—>右键—>映射网络驱动器—>找到共享的文件夹

③ springboot怎么配置服务器

你可以像使用标准的Java库文件一样使用Spring Boot。简单的将需要的 spring-boot-*.jar 添加到classpath即可。
Spring Boot不要求任何特殊的工具集成,所以可以使用任何IDE,甚至文本编辑器。
只是,仍然建议使用build工具:Maven 或 Gradle。
Spring Boot依赖 使用 org.springframework.boot groupId 。

④ 在 linux 中配置 tftpboot 服务器的 10 个步骤-

在本文中,让我们讨论如何设置 tftpboot,包括安装必要的软件包,以及 tftpboot 配置。

TFTP 引导服务主要用于在您没有物理访问权限的远程计算机上执行操作系统安装。为了成功执行操作系统安装,应该有一种重新启动远程服务器的方法 - 使用wakeonlan或手动重新启动它或其他方式。

在这些情况下,您可以相应地设置 tftpboot 服务,并且可以远程完成操作系统安装(您需要拥有 autoyast 配置文件来自动执行操作系统安装步骤)。

本文介绍了 64 位架构中的 SLES10-SP3 的分步过程。但是,这些步骤与任何其他 Linux 发行版非常相似。

需要为 tftpboot 设置安装以下软件包。

安装 dhcp 服务器服务的软件包:

安装 syslinux 包后,会在 /usr/share/pxelinux/ 目录下创建 pxelinux.0 文件。这是在客户端机器上加载安装内核和 initrd 映像所必需的。

验证软件包是否已成功安装。

从您各自的 Linux 发行版的存储库中下载适当的 tftpserver。

在根目录( / )下创建 tftpboot 目录,如下所示。

安装 syslinux 软件包后,PXE Linux 映像将可用。将其复制到 /tftpboot 路径,如下所示。

让我们假设我们要在远程服务器上安装 SLES10 SP3 Linux 发行版。如果您有 SUSE10-SP3 DVD,请将其插入驱动器或安装您拥有的 ISO 映像。在这里,iso 映像已按如下方式挂载:

请参阅我们之前关于如何挂载和查看 ISO 文件的文章。

将 initrd 复制到 tftpboot 目录,如下所示。

在 /tftpboot 下创建目录 pxelinux.cfg 并为客户端定义 pxe 引导定义。

以下选项用于,

根据上面的条目,nfs 安装模式用于提供安装 RPM 和配置文件。因此,在导出列表中使用 /tftpboot 目录在这台机器上设置 nfs。您可以在 autoyast 配置文件中添加“autoyast”选项以自动执行操作系统安装步骤,否则您需要手动运行安装步骤。

将nobody:nobody 分配给/tftpboot 目录。

修改 /etc/dhcpd.conf 如下所示。

在 /etc/syslinux/dhcpd 中指定接口以侦听来自客户端的 dhcp 请求。

在这里,这台机器在 eth1 设备上的 ip 地址为 192.168.1.101。因此,如上所示,为 DHCPD_INTERFACE 指定 eth1。

修改 /etc/xinetd.d/tftp 文件以反映以下内容。默认情况下,禁用参数的值为“yes”,请确保将其修改为“no”,并且需要将 server_args 条目更改为 -s /tftpboot。

无需修改 etc/xinetd.conf 文件。使用 xinetd.conf 文件中指定的默认值。

重新启动这些服务,如下所示。

重启nfs服务后,可以通过以下命令查看导出的目录列表(/tftpboot),

最后,tftpboot 设置已准备就绪,现在可以在 BIOS 设置中将第一个引导设备更改为“网络”后引导客户端计算机。

如果您遇到任何 tftp 错误,您可以通过 tftpd 服务检索一些文件来进行故障排除。

从 tftpserver 检索一些文件以确保 tftp 服务使用 tftp 客户端正常工作。让我们假设 sample.txt 文件存在于 /tftpboot 目录下。

⑤ spring boot怎么部署到服务器

1. 既然需要打包成war包项目,首先需要在pom.xml文件中修改打包类型,将spring boot默认的<packaging>jar</packaging>修改为<packaging>war</packaging>形式;
2. 其次spring boot的web项目中内嵌tomcat服务器,所以如果我们想要发布war包到tomcat项目,要讲spring boot中内嵌的tomcat包依赖排除,不然产生冲突,打开下面代码中的注释即可。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--
<exclusions>
<exclusion>

⑥ 如何搭建spring boot

Helloworld使用传统的springmvc,需要配置web.xml,applicationContext.xml,然后打包为war在tomcat中运行,而如果使用springboot,一切都变得简单起来了。下面使用Maven来创建springboot的webapp工程pom.xml4.0.0org.springframeworkgs-spring-boot0.1.0org.springframework.bootspring-boot-starter-parent1.3.3.RELEASEorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtest1.8org.springframework.bootspring-boot-maven-;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@{@RequestMapping("/")publicStringindex(){return"GreetingsfromSpringBoot!";}}其中:@RestController表示使用springmvc来接收request请求@RequestMapping映射到主页当请求返回的时候,是纯文本,那是因为@RestController是由@Controller和@ResponseBody组成Application@{publicstaticvoidmain(String[]args){ApplicationContextctx=SpringApplication.run(Application.class,args);System.out.println("Let':");}}其中:@SpringBootApplication代表了其有四个注解组成:@Configuration,@EnableAutoConfiguration,@EnableWebMvc,@ComponentScan在SpringApplication.run中会去自动启动tomcatrun方法返回上下文,在这个上下文中可以拿到所有的bean没有一行配置代码、也没有web.xml。基于SpringBoot的应用在大多数情况下都不需要我们去显式地声明各类配置,而是将最常用的默认配置作为约定,在不声明的情况下也能适应大多数的开发场景。总体而言springboot是对javawebapp开发的简化单元测试@RunWith(SpringJUnit4ClassRunner.class)@(classes=MockServletContext.class)@{privateMockMvcmvc;@Beforepublicvoidbefore()throwsException{mvc=MockMvcBuilders.standaloneSetup(newHelloController()).build();}@Afterpublicvoidafter()throwsException{}/****Method:index()**/@TestpublicvoidtestIndex()throwsException{//TODO:Testgoesheremvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk()).andExpect(content().string(equalTo("GreetingsfromSpringBoot!")));}}建立restfullweb服务器接上,使用srpingboot建立web服务器就非常简单了,首先建立一个pojo类publicclassGreeting{privatefinallongid;privatefinalStringcontent;}然后使用control来handlehttp请求@{="Hello,%s!";privatefinalAtomicLongcounter=newAtomicLong();@RequestMapping("/greeting")publicGreetinggreeting(@RequestParam(value="name",defaultValue="World")Stringname){returnnewGreeting(counter.incrementAndGet(),String.format(template,name));}}其中:@RequestParam表明了参数要求,如果要必填则设置required=true返回是一个对象,会被自动转换为json当我们访问:greeting时候返回{"id":1,"content":"Hello,World!"}greeting?name=User时候返回{"id":2,"content":"Hello,User!"}数据库访问另一个非常常用的问题。在传统开发中,我们需要配置:类路径上添加数据访问驱动实例化DataSource对象,指定url,username,password注入JdbcTemplate对象,如果使用Mybatis,还要配置框架信息下面一个例子讲述用用springboot来代替。数据访问层我们将使用SpringDataJPA和Hibernate(JPA的实现之一)。开始之前先介绍两个概念springdata为了简化程序与数据库交互的代码,spring提供了一个现成的层框架,spring家族提供的spring-data适用于关系型数据库和nosql数据库;例如SpringDataJPA,SpringDataHadoop,SpringDataMongoDB,SpringDataSolr等;具体的可以参考官网:.mysql.jdbc.Driverspring.datasource.password=xxx#SpecifytheDBMSspring.jpa.database=MYSQL#.jpa.show-sql=true#Hibernateddlauto(create,create-drop,update)spring.jpa.hibernate.ddl-auto=update#Namingstrategyspring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy#)spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect其中,hibernate的ddl-auto=update配置表名,数据库的表和列会自动创建写下实体类:@Entity@Table(name="student")publicclassStudent{@Id@GeneratedValue(strategy=GenerationType.AUTO)privatelongid;@NotNullprivateStringname;privateStringage;}@Entity,说明被这个注解修饰的类应该与一张数据库表相对应,表的名称可以由类名推断,当然了,也可以明确配置,只要加上@Table(name="books")即可。需要特别注意,每个Entity类都应该有一个protected访问级别的无参构造函数,用于给Hibernate提供初始化的入口。@Idand@GeneratedValue:@Id注解修饰的属性应该作为表中的主键处理、@GeneratedValue修饰的属性应该由数据库自动生成,而不需要明确指定。@ManyToOne,@ManyToMany表明具体的数据存放在其他表中,在这个例子里,书和作者是多对一的关系,书和出版社是多对一的关系,因此book表中的author和publisher相当于数据表中的外键;并且在Publisher中通过@OneToMany(mapped="publisher")定义一个反向关联(1——>n),表明book类中的publisher属性与这里的books形成对应关系。@Repository用来表示访问数据库并操作数据的接口,同时它修饰的接口也可以被componentscan机制探测到并注册为bean,这样就可以在其他模块中通过@Autowired织入。:@{ListfindByLastName(StringlastName);}详细的可以看springjpa的具体介绍。最后使用:@{@AutowiredprivateStudentDao;@RequestMapping("/get-student-counts")@(){Liststudents=(List).findAll();returnString.format("%d",students.size());}}主要一点是:我在CustomerRepository实现中每天添加方法:findByLastName,@Autowired就会一直报错。

热点内容
明日之后电脑配置如何提高 发布:2025-03-15 02:08:39 浏览:861
c阶乘算法 发布:2025-03-15 02:08:39 浏览:363
挂锁忘记密码有什么办法 发布:2025-03-15 02:04:45 浏览:407
sql模糊查找 发布:2025-03-15 02:04:06 浏览:753
服务器如何不让玩家搞破坏 发布:2025-03-15 02:04:02 浏览:57
nmake编译win32 发布:2025-03-15 01:58:27 浏览:164
50台电脑网咖服务器 发布:2025-03-15 01:51:50 浏览:781
linux内核页表 发布:2025-03-15 01:48:53 浏览:390
为什么安卓手机短信每天都在收发 发布:2025-03-15 01:48:17 浏览:974
ftp辅助 发布:2025-03-15 01:41:52 浏览:317