随笔1

                                                                                                      单纯记录一个菜鸟的学习过程
到公司的第一天上班学习了maven相关的东西,公司的电脑上已经配置好了maven的环境变量,回家后在自己电脑上配置maven环境变量的时候遇到了些小问题,在下面放上Maven在Mac上配置环境变量的两种方法:
推荐方法:(要得到maven安装路径可以直接把文件拖进终端里)
1.打开终端,输入open .bash_profile
2.在.bash_profile中输入
export M2_HOME=/Users/lukizzz/Maven/apache-maven-3.5.4 (安装路径) export PATH=$PATH:$M2_HOME/bin
3.关闭.bash_profile
4.输入source  .bash_profile使修改生效
5.输入mvn -version
 
第二种方法:

这个是网络上的截图,需要注意的是在退出insert模式后一定要输入:wq!保存修改,不过还是建议用上面的方法,比较快捷方便
 
 
2. 关于maven的结构
随笔1
 
刚从eclipse转IDEA,各种快捷键和功能的使用非常生疏
 
(1)项目骨架:项目的根目录下方pom.xml,在pom.xml中通过写配置文件添加jar包.
(2)项目主代码:maven认为项目的主代码是位于src/main/
(3)资源文件:maven的资源文件位于src/main/resources目录下 
(4)测试文件:maven默认的测试代码目录src/test/java目录

 
参考各个博客的内容后的整理:
2.maven的常用命令
创建一个简单的Java工程:mvn archetype:create -DgroupId=com.mycompany.example -DartifactId=Example
创建一个javaweb的工程:mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.mycompany.app -DartifactId=my-webapp
打包:mvn package
编译:mvn compile
编译测试程序:mvn test-compile
清空:mvn clean
运行测试:mvn test
生成站点目录:mvn site
生成站点目录并发布:mvn site-deploy
安装当前工程的输出文件到本地仓库:mvn install
安装指定文件到本地仓库:mvn install:install-file -DgroupId= -DartifactId= -Dversion=1.0.0-Dpackaging=jar -Dfile=
查看实际pom信息:mvn help:effective-pom
分析项目的依赖信息:mvn dependency:analyze 或mvn dependency:tree
生成eclipse项目文件:mvn eclipse:eclipse
生成idea项目:mvn idea:idea
查看帮助信息:mvn help:help 或mvn help:help-Ddetail=true
查看插件的帮助信息:mvn :help,比如:mvn dependency:help 或 mvn ant:help 等等。
 
在IDEA中,可以通过手动输入命令行和右侧快捷键两种方式进行命令执行
 
注意!!!:mvn后面都有个空格
 
 
3.maven和传统Java动态工程相比的区别和优势
区别:
1.创建的方式不同
2.目录结构不同
3.maven存在着pom文件,可以添加依赖信息
优势:
相对于传统的Java动态Web工程而言,Maven工程有很多优势是传统动态工程所不具备的,同时也解决了传统动态工程所存在的一些问题,如下:
1.工程庞大: 当我们的项目中代码量很多或者项目中的模块很多甚至达到几十个模块时,就不再适合使用Package来划分模块,Maven可以让每一个模块都对应一个Java工程,且各个模块对应的工程之间可以互相通信。
2.jar包重复: 当有多个工程时,若是使用到了jar包就需要程序员手动的将jar包复制到/WEB-INF/lib目录中,容易造成浪费存储空间的情况,而Maven可以将我们在所有工程中使用到的jar包保存到仓库中,工程需要时来引用这个jar包,而不再真的将jar包复制到工程中。
3.jar包来源:平常的Java工程中,jar包需要我们自己去官网或者其他网站下载,但是在官网上很多提供下载jar的方式是Maven和SVN,如mybatis的官网,而且若不在官网上下载容易造成jar来源不正和内容不正的问题,借助Maven可以用一种规范的方式去下载jar包,因为所有知名的框架或第三方工具的jar包已经按照统一的规范存放在了Maven的仓库中。
4.jar包依赖:不同的技术有时候需要依赖其他的技术,所以有时候导入一个jar包的时候就要考虑导入他的依赖包,如fileUpload.jar要依赖io.jar,这对程序员的知识程度要求的比较高,Maven会自动的将被依赖的包导入进来。
 
 
4.Maven的生命周期
Maven定义了三套生命周期:clean、default、site,每个生命周期都包含了一些阶段(phase)。三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase。执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase.
clean:
pre-clean(执行清理前的工作);
clean(执行上一次构建生成的所有文件);
post-clean(执行清理后的工作)
default(核心生命周期):
validate
initialize
generate-sources
process-sources
generate-resources
process-resources :复制和处理资源文件到target目录,准备打包;
compile :编译项目的源代码;
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources
test-compile :编译测试源代码;
process-test-classes
test :运行测试代码;
prepare-package
package :打包成jar或者war或者其他格式的分发包;
pre-integration-test
integration-test
post-integration-test
verify
install :将打好的包安装到本地仓库,供其他项目使用;
deploy :将打好的包安装到远程仓库,供其他项目使用;
site生命周期:
pre-site
site(生成项目的站点文档);
post-site
site-deploy(发布生成的站点文档);
 
 

作为菜鸟初识Springboot

https://www.imooc.com/search/?words=springboot

 随笔1

springboot的特点:

1.化繁为简,简化配置

2.备受关注,是下一代框架

3.微服务的入门级框架 springboot--->SpringCloud

在真的使用之后发现springboot的开发相比以前自己的开发省了太多时间和代码行,很多都是自动完成,无需重复敲打相同的代码,是以一个新手菜鸟的身份在制作这个项目,很多思想和代码还没从传统的动态开发转变过来,有在努力适应.

Springboot编写一个简易的登录注册的界面和表单:

(还未加入数据库和业务层,也没弄样式)

1.创建一个新的Spring Initializr

 随笔1

2.附上我的项目的一些结构

 随笔1

3.pom.xml

 随笔1

1.有遇到这种报错:

 随笔1

是因为我把application.yml创建在了temolates的目录下导致的,把它拉回到resources目录下就好了

2.也有遇到下图这个报错

 随笔1

是因为我还是和在eclipse传统java动态工程那样建了一个UserDao的实现类UseDaoImpl,而在这里可以直接通过

 随笔1

来实现

放上每一页的代码:

application.yml(数据库的操作在接下来会去完成)

 随笔1

index.html

 随笔1

login.html

 随笔1

register.html

 随笔1

User类:

package com.lk.week1.domain;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.Table;

/**

* @Author: Lukizzz

* @Date: 2018/7/22 17:23

* @Description:

*/

@Entity

@Table(name = "table_user")

public class User {

@Id

@GeneratedValue

private Integer id;

private String username;

private String password;

private String email;

private String address;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

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 String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

}

UserDao接口:

package com.lk.week1.dao;

import com.lk.week1.domain.User;

import org.springframework.data.repository.CrudRepository;

import org.springframework.stereotype.Repository;

/**

* @Author: Lukizzz

* @Date: 2018/7/22 19:22

* @Description:

*/

@Repository

public interface UserDao extends CrudRepository<User,Integer> {

/**

*通过用户名,密码查询

* @param username

* @param password

* @return

*/

public User findByUsernameAndPassword(String username,String password);

}

UserController

package com.lk.week1.controller;

import com.lk.week1.dao.UserDao;

import com.lk.week1.domain.User;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

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

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

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

import javax.validation.constraints.Null;

/**

* @Author: Lukizzz

* @Date: 2018/7/22 16:03

* @Description:

*/

@Controller

@RequestMapping("/first/*")

public class UserController {

@Autowired

private UserDao userDao;

//index页面

@RequestMapping("/index")

public String index() {

return "index";

}

@RequestMapping("/register")

public String register() {

return "register";

}

@RequestMapping("/login")

public String login() {

return "login";

}

//注册方法

@RequestMapping("/addregister")

public String register(HttpServletRequest request) {

String username = request.getParameter("username");

String password = request.getParameter("password");

String password2 = request.getParameter("password2");

String email = request.getParameter("email");

String address = request.getParameter("address");

if (password.equals(password2)) {

User user = new User();

user.setUsername(username);

user.setPassword(password);

user.setEmail(email);

user.setAddress(address);

userDao.save(user);

return "index";

} else {

return "register";

}

}

//登录方法

@RequestMapping("/addlogin")

public String login(HttpServletRequest request, ModelAndView modelAndView) {

String username = request.getParameter("username");

String password = request.getParameter("password");

User user = userDao.findByUsernameAndPassword(username, password);

if(user!=null) {

return "index";

}else {

modelAndView.addObject("message","用户名或密码错误");

return "login";

}

}

}

简易的登录和注册完成

 随笔1

 随笔1

 随笔1

越学下去越发现分支开去要学的东西有很多,希望能尽快把基础打扎实.

接下来会尽快做出service层处理业务,和数据库相连以及做样式