想做JAVAWEB后台的话,要学习哪些知识

想做JAVAWEB后台的话,要学习哪些知识,第1张

首先要明确后端包括哪些职业:DBA(数据库维护优化专家),Developer(程序猿),Architect(构架师),Scrum master及类似(敏捷开发专家),Project Manager(产品狗),Maintenance&IT support(通讯和服务器相关),当然这只是一个大致的分类,并没有一个清晰的界限。

按程序猿内功而言:关系型数据库,领域驱动设计(Domain-Driven Design),设计模式Design Pattern,算法Algorithm,面向对象编程OOP(SOLID),线程安全,事件驱动,测试驱动开发,依赖注入框架,等等。

对于初学Java并且有志于后端开发的同学来说,需要重点关注以下几个部分:

基础:比如计算机系统、算法、编译原理等等

Web开发: 主要是Web开发相关的内容,包括HTML/CSS/js(前端页面)、 Servlet/JSP(J2EE)以及MySQL(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面)。

J2EE:你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的。关于Servlet/Jsp部分视频的选择,业界比较认可马士兵的视频。

最后一步,你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC *** 作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。

开发框架:目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,相信我,你一定会用到的。还要提一句的是,你在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。

因此,你需要去看一些JDK中的类的源码,也包括你所使用的框架的源码。这些源码能看懂的前提是,你必须对设计模式非常了解。否则的话,你看源码的过程中,永远会有这样那样的疑问,这段代码为什么要这么写?为什么要定义这个接口,它看起来好像很多余?由此也可以看出,这些学习的过程是环环相扣的,如果你任何一个阶段拉下来了,那么你就真的跟不上了,或者说是一步慢步步慢。而且我很负责的告诉你,我在这个阶段的时候,所学习的东西远多于这里所罗列出来的。

总而言之,这个阶段,你需要做的是深入了解Java底层和Java类库(比如并发那本书就是Java并发包java.concurrent的内容),也就是JVM和JDK的相关内容。而且还要更深入的去了解你所使用的框架,方式比较推荐看源码或者看官方文档。

最近公司运用springboot构建项目,确实比ssh搭建要快很多。springboot官方学习网站

1.首先要下载maven,用maven管理项目很方便,下载完maven配置好环境,maven我就不细说了。

2.创建一个maven项目,pom.xml文件里面写这些:

<modelVersion>4.0.0</modelVersion>

<groupId>springboot</groupId>

<artifactId>testSpringBoot</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>testSpringBoot</name>

<packaging>jar</packaging>

<!-- 继承父包 -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.1.3.RELEASE</version>

<relativePath></relativePath>

</parent>

<!-- spring-boot的web启动的jar包 -->

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<!--jpa的jar包 , *** 作数据库的,类似hibernate-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

<!--mysql驱动-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<!--thymeleaf模板jar,是很不错的html数据传递取值,类似jsp的jstl-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

</dependencies>

<!--maven的插件-->

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

<!-- 配置java版本 不配置的话默认父类配置的是1.6-->

<pluginManagement>

<plugins>

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.7</source>

<target>1.7</target>

</configuration>

</plugin>

</plugins>

</pluginManagement>

</build>

</project>

3.创建的文件目录如图:

4.在com.boot(即最外层目录文件)下写一个如下main方法:

package com.boot

import org.springframework.boot.SpringApplication

import org.springframework.boot.autoconfigure.EnableAutoConfiguration

import org.springframework.context.annotation.ComponentScan

import org.springframework.context.annotation.Configuration

@Configuration

@EnableAutoConfiguration

@ComponentScan

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args)

}

}

5.在com.boot.web下创建一个类如下:

package com.boot.web

import org.springframework.stereotype.Controller

import org.springframework.web.bind.annotation.RequestMapping

import org.springframework.web.bind.annotation.ResponseBody

@Controller

public class MainController {

//@RequestMapping("")

//public String index(){

//return "examples/index"

//}

@RequestMapping("/")

@ResponseBody

String home() {

return "Hello World!"

}

}

@RequestMapping @ResponseBody

这两个注解都是springMVC的,不懂得可以看springMVC

6.在resources下增加一个application.properties文件

文件内容如下配置:

spring.datasource.platform=mysql

spring.datasource.url=jdbc:mysql://localhost/springboot?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&autoReconnect=true&failOverReadOnly=false

spring.datasource.username=root

spring.datasource.password=root

spring.datasource.driverClassName=com.mysql.jdbc.Driver

# Advanced configuration...

spring.datasource.max-active=50

spring.datasource.max-idle=6

spring.datasource.min-idle=2

spring.datasource.initial-size=6

#create table

spring.jpa.hibernate.ddl-auto=validate

server.port=8080

server.session-timeout=30

server.tomcat.uri-encoding=UTF-8

spring.thymeleaf.prefix=classpath:templates/

spring.thymeleaf.suffix=.html

spring.thymeleaf.mode=HTML5

spring.thymeleaf.encoding=UTF-8

spring.thymeleaf.content-type=text/html

spring.thymeleaf.cache=false

该文件的配置可以参考springboot的官网

该文件的全部参数配置;如下(摘自官网)

# ===================================================================

# COMMON SPRING BOOT PROPERTIES

#

# This sample file is provided as a guideline. Do NOT copy it in its

# entirety to your own application. ^^^

# ===================================================================

# ----------------------------------------

# CORE PROPERTIES

# ----------------------------------------

# SPRING CONFIG (ConfigFileApplicationListener)

spring.config.name= # config file name (default to 'application')

spring.config.location= # location of config file

# PROFILES

spring.profiles.active= # comma list of active profiles

# APPLICATION SETTINGS (SpringApplication)

spring.main.sources=

spring.main.web-environment= # detect by default

spring.main.show-banner=true

spring.main....= # see class for all properties

# LOGGING

logging.path=/var/logs

logging.file=myapp.log

logging.config= # location of config file (default classpath:logback.xml for logback)

logging.level.*= # levels for loggers, e.g. "logging.level.org.springframework=DEBUG" (TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF)

# IDENTITY (ContextIdApplicationContextInitializer)

spring.application.name=

spring.application.index=

# EMBEDDED SERVER CONFIGURATION (ServerProperties)

server.port=8080

# JACKSON (JacksonProperties)

spring.jackson.date-format= # Date format string (e.g. yyyy-MM-dd HH:mm:ss), or a fully-qualified date format class name (e.g. com.fasterxml.jackson.databind.util.ISO8601DateFormat)

spring.jackson.property-naming-strategy= # One of the constants on Jackson's PropertyNamingStrategy (e.g.

# THYMELEAF (ThymeleafAutoConfiguration)

spring.thymeleaf.prefix=classpath:/templates/

spring.thymeleaf.suffix=.html

spring.thymeleaf.mode=HTML5

spring.thymeleaf.encoding=UTF-8

spring.thymeleaf.content-type=text/html # charset=<encoding>is added

spring.thymeleaf.cache=true # set to false for hot refresh

# FREEMARKER (FreeMarkerAutoConfiguration)

spring.freemarker.allowRequestOverride=false

spring.freemarker.cache=true

spring.freemarker.checkTemplateLocation=true

spring.freemarker.charSet=UTF-8

spring.freemarker.contentType=text/html

spring.freemarker.exposeRequestAttributes=falseshell.ssh.keyPath=

shell.ssh.port=

shell.telnet.enabled= # telnet settings ...

shell.telnet.port=

shell.auth.jaas.domain= # authentication settings ...

shell.auth.key.path=

shell.authwww.meidiyazx.com/sitemap.txtname=

shell.authwww.meidiyazx.com/sitemap.txtpassword=

shell.auth.spring.roles=spring.freemarker.exposeSessionAttributes=false

spring.freemarker.exposeSpringMacroHelpers=false

spring.freemarker.prefix=

spring.freemarker.requestContextAttribute=

spring.freemarker.settings.*=

spring.freemarker.suffix=.ftl

spring.freemarker.templateLoaderPath=classpath:/templates/ # comma-separated list

spring.freemarker.viewNames= # whitelist of view names that can be resolved

# GROOVY TEMPLATES (GroovyTemplateAutoConfiguration)

spring.groovy.template.cache=true

spring.groovy.template.charSet=UTF-8

spring.groovy.template.configuration.*= # See Groovy's TemplateConfiguration

spring.groovy.template.contentType=text/html

spring.groovy.template.prefix=classpath:/templates/

spring.groovy.template.suffix=.tpl

spring.groovy.template.viewNames= # whitelist of view names that can be resolved

# VELOCITY TEMPLATES (VelocityAutoConfiguration)

spring.velocity.allowRequestOverride=false

spring.velocity.cache=true

spring.velocity.checkTemplateLocation=true

spring.velocity.charSet=UTF-8

spring.velocity.contentType=text/html

spring.velocity.dateToolAttribute=

spring.velocity.exposeRequestAttributes=false

spring.velocity.exposeSessionAttributes=false

spring.velocity.exposeSpringMacroHelpers=false

spring.velocity.numberToolAttribute=

spring.velocity.prefix=

spring.velocity.properties.*=

spring.velocity.requestContextAttribute=

spring.velocity.resourceLoaderPath=classpath:/templates/

spring.velocity.suffix=.vm

spring.velocity.viewNames= # whitelist of view names that can be resolved

# INTERNATIONALIZATION (MessageSourceAutoConfiguration)

spring.messages.basename=messages

spring.messages.cacheSeconds=-1

spring.messages.encoding=UTF-8

# SECURITY (SecurityProperties)

security.user.name=user # login username

security.user.password= # login password

security.user.role=USER # role assigned to the user

security.require-ssl=false # advanced settings ...

security.enable-csrf=false

security.basic.enabled=true

spring.batch.schema= # batch schema to load

# AOP

spring.aop.auto=

# GIT INFO

spring.git.properties= # resource ref to generated git info properties file

7.找到com.boot下的Application以java Application方式启动,然后打开浏览器输入localhost:8080就会出现Hello World!

这样一个简单的web开发就搭建好了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6113743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存