erp系统是干嘛的,长沙seo工作室,网站用哪些系统做的好处,网站后台英语一、SpringBoot入门
1.1 SpringBoot概述
SpringBoot是由Pivotal团队提供的全新框架#xff0c;其设计目的是用来简化Spring应用的初始搭建以及开发过程。
Spring程序缺点#xff1a;配置繁琐#xff0c;依赖设置繁琐。SpringBoot程序优点#xff1a;自动装配#xff0c… 一、SpringBoot入门
1.1 SpringBoot概述
SpringBoot是由Pivotal团队提供的全新框架其设计目的是用来简化Spring应用的初始搭建以及开发过程。
Spring程序缺点配置繁琐依赖设置繁琐。SpringBoot程序优点自动装配起步依赖简化依赖配置赋值功能内置服务器。
版本管理以后不需要管版本只需要告诉是SpringBoot几就自动将所有最佳组合的版本配合在一起做好。
依赖管理所有的依赖SpringBoot都已经自动装配好。
起步依赖 starterSpringBoot中创建项目名称定义了当前项目使用的所有项目坐标以达到减少依赖配置的目的。
parent所有SpringBoot项目要继承的项目定义了若干个坐标版本号依赖管理而非依赖以达到减少依赖冲突的目的。 Springboot简化了SpringMVC的开发 核心功能是靠下面的继承来实现
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.1.3/versionrelativePath/ !-- lookup parent from repository --
/parent
1.2 项目创建与启动
第1步新建Maven项目或项目选择Spring初始化并配置模块相关信息
注意选择Spring InitializrPackage name后面的后缀要删掉和Group保持一致 第2步选择当前模块需要使用的技术集勾选Spring Web 第3步开发控制器类在java下面创建controller然后新建类BookController在里面编写代码如下
RestController
RequestMapping(/books)
public class BookController {GetMapping(/{id})public String getById(PathVariable Integer id){System.out.println(id id);return hello , spring boot !;}
}
第4步然后右键下面的文件运行启动 1.3 项目.jar包运行
Maven中点击Package会将项目打成一个.jar包 右键.jar包点击Open in 点击Explorer 在搜索栏中输入cmd然后输入java -jar输入一个s然后点击Tab键就可以自动补全然后点击运行即可 依赖的是下面的插件 1.4 配置文件书写格式
想改变端口号
1. 在application.properties里写入
server.port802. 在resources下创建application.yml【主要书写方式】里写入下面代码注意port:后面有一个空格
server:port: 80
3. 在application.yaml里写入如下代码
server:port: 80
自动提示功能消失解决方案 生效顺序properties yml yaml
二、yaml
2.1 yaml格式
YAMLYAML Aint Marku Language是一种数据序列化格式。
优点容易阅读。容易与脚本语言交互。以数据为核心重数据轻格式。
YAML文件拓展名.yml主流、.yaml
yaml语法规则
层级关系用冒号结束以缩进表示层级关系类似python在属性后面要添空格大小写敏感 2.2 yaml数据读取
方法1使用Value读取单个数据 方法2全部封装到nvironment对象 方法3自定义对象封装指定数据 三、多环境开发
3.1 配置问题
在.yml和.yaml中按照如下方式书写可以切换不同的环境输入profile选第1个就行输入port选第1个填入端口后即可 在properties文件中的书写按照如下方式 3.2 命令行启动参数设置
打包之前先执行clean
在后面加上--spring.profiles.active环境名 可以使用不同的环境启动。 如果想更改启动.jar包的端口也是可以的只需要在后面加上 --server.port端口号。 还可以进行累加例如下面采用88端口以test的环境启动 3.3 兼容问题
以maven为主boot为辅以maven控制版本然后让boot加载maven的版本。
假如maven是pro生效SpringBoot是dev生效那么最终是用dev 首先要在Maven中设置多环境boot中要读取引用Maven中设置的多环境 在打包之前需要导入下面的插件需要将占位符解析将useDefaultDelimiters里面的值改为true。
plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-resources-plugin/artifactIdversion3.2.0/versionconfigurationencodingUTF-8/encodinguseDefaultDelimiterstrue/useDefaultDelimiters/configuration
/plugin
3.4 配置文件分类
IDEA的resources下的config里的配置文件优先级是第3级 在jar包目录下写一个配置文件可以覆盖IDEA里的配置文件优先级是第2级 还可以在jar包目录下写一个config配置文件是第1级 四、SpringBoot整合MyBatis实现增删改查 4.1 Spring整合mybatis
第1步新建项目。新建全新项目注意更改依赖 第2步连接数据库。更改.properties的配置文件文件后缀为.yml书写jdbc配置
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_dbusername: rootpassword: 111111第3步设置实体类。创建domain-Book在里面写入实体类 第4步创建接口。创建dao-BookDao数据层接口写SQL语句
Mapper
public interface BookDao {Select(select * from tb_brand where id #{id})public Book getById(Integer id) ;
}
— — — — — — 知识加油站 — — — — — —
Mapper注解用于标记一个接口作为MyBatis的Mapper接口。它告诉MyBatis框架将该接口识别为一个Mapper并自动生成实现该接口的代理对象。当使用Mapper注解标记接口后MyBatis将会自动为该接口生成实现类它会根据接口方法上的注解来动态构建相应的SQL语句并执行数据库操作。
ContextConfiguration注解用于指定Spring应用程序上下文的配置信息以加载和初始化Spring容器。classes属性可以指定一个或多个配置类用于加载Spring容器中的bean。
— — — — — — — — — — — — — — — —
5. 测试。在测试类中编写测试方法
ContextConfiguration(classes SsmMybatisApplication.class)
SpringBootTest
class SsmMybatisApplicationTests {Autowiredprivate BookDao bookDao;Testvoid contextLoads() {Book byId bookDao.getById(1);System.out.println(byId);}
} 6. 可以指定数据源导入依赖然后再.yml文件中指定type
dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version
/dependency 4.2 增
在dao — BookDao接口中添加如下方法
Insert(insert into tb_brand(brand_name,company_name,ordered,description,status)values(#{brand_name},#{company_name},#{ordered},#{description},#{status}))
public void add(Brand book);
4.3 删
注意等号右边的#{ID}只是一个占位符会根据传入的ID值被替换为具体的值因此不一定要与实体类中的id取一样的变量名。等号左边的id是数据库中的字段id因此名称一定要匹配。
Delete(delete from tb_brand where id #{ID})
public void delete(int ID);
4.4 改
SQL语句书写复杂不适合用注解因此要用XML配置文件配置方法如下
第1步在 java — com — itheima — dao的BookDao接口里写入如下方法
public void update(Brand brand);
第2步在resources下创建mybatis-config.xml文件。在resources下创建mapper包创建BookMapper.xml。 第3步主配置文件mybatis-config.xml模板如下setting中是开启驼峰命名
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configurationsettingssetting namemapUnderscoreToCamelCase valuetrue//settings
/configuration
第4步接口映射文件Mapper.xml 文件包含了SQL语句模板如下
注意要修改如下几个地方1. namespace要更改为接口的全路径。2. update idupdate这里第一个update要根据增删改查的不同更换为不同操作词汇 3. update idupdate这里第二个update要替换为接口中的方法名
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.itheima.dao.BookDao!--查询--update idupdate update tb_brandsetif testbrand_name ! null and brand_name ! brand_name #{brand_name},/ifif testcompany_name ! null and company_name ! company_name #{company_name},/ifif testordered ! null ordered #{ordered},/ifif testdescription ! null and description ! description #{description},/ifif teststatus ! null status #{status},/if/setwhere id #{id};/update
/mapper
注意2个点第一个update tb_brand后面是用set标签来修改值第二个test里面写的是实体类的变量名第三个在/set后还要写where语句用于确定要修改的数据。
第5步加载配置文件。在.yml文件中指定指定mybatis全局配置文件和接口映射文件位置注意这里的相对路径从.yml文件所在的resources下开始
mybatis:config-location: classpath:mybatis-config.xmlmapper-locations: classpath:mapper/*.xml
config-location 用于指定MyBatis的全局配置文件的路径。mapper-locations 用于指定Mapper XML文件的路径。
第6步编写测试方法
ContextConfiguration(classes SsmMybatisApplication.class)
SpringBootTest
class SsmMybatisApplicationTests {Autowiredprivate BookDao bookDao;Testvoid contextLoads() {String companyName 彭德科技有限公司;int id 1;Brand brand new Brand();brand.setCompany_name(companyName);brand.setId(id);bookDao.update(brand);}
}
4.5 查
Select(select * from tb_brand where id#{id})
public Brand select(int id);
五、实现网页端与数据库连接
事先说明6点注意事项
1、右上角的小图标只能用于测试修改静态页面的样式实际和数据库的关联不能通过这种方式进行。 2、如果想测试动态页面的效果与数据库关联必须通过启动类启动启动类是带有main方法的要注意选择Current File进行启动否则可能启动方式可能受前面测试影响。 3、注意启动类必须同controller、dao等一系列的包在同一个目录下启动类的上面不能有其它包如果不在同一目录下可能导致扫描不到controller中的资源路径 也可以通过注解将controller包扫描的方式解决
SpringBootApplication(scanBasePackages com.itheima.controller)
4、如果想访问前端界面只需要将webapp视为根目录相当于localhost这一级然后想要访问具体的静态资源只需要输入webapp后面的路径即可
比如ADSS.html在wewbapp目录下于是只需要在localhost:8081后面输入/ADSS.html即可访问该静态资源 5、动态资源比如跳转路径访问路径一般存放在controller目录下注意controller包需要与启动类在同一个层次目录下
访问数据只需要输入RequestMapping里的地址即可直接访问 6、实际网站部署还要注意跨域问题一般在启动类上添加CrossOrigin注解CrossOrigin(origins http://localhost:请求端口号)
5.1 实时显示数据库数据
实现思路ajax发送请求到controller层controller层负责查询数据库并返回结果给ajaxajax将结果赋值给显示变量Vue根据变量中的值对结果进行显示最终我们能看到网页上的数据。
重点技术原理
1. 数据显示问题
在vue的表格中有一个 :dataxxx的字样其中xxx就是数据源这个数据源会在data()的return中被定义例如在这里数据源都是tableData在tableData中不需要定义具体的字段因为这些字段在tostring函数中都会带有 数据源一般是JSON格式JSON数据有一个特点最外层用 [ ] 符号进行包裹在内层每一个数据都用 { } 符号进行包裹vue表格会自动提取数据库字段的key然后去匹配每个单元格的propxxx如果key和xxx匹配上就将这个key对应的value显示到prop所在单元格的位置。 2.请求发送
mounted简单理解就是在挂载完成即Vue初始化成功HTML页面渲染成功之后执行的钩子函数。
mounted详细解释如下mounted是Vue实例生命周期钩子函数之一。mounted函数会在Vue实例被创建并且挂载到DOM元素DOM元素指的是文档对象模型上之后立即调用。函数的作用是在Vue实例挂载指的是将Vue实例与一个实际的DOM元素关联起来使其能够在该DOM元素内部进行渲染完成后执行一些初始化操作或请求数据。
下面代码的含义是在Vue初始化完成HTML页面渲染成功后发送get请求到/api/data路径请求动态资源返回一个response然后取出data域中的数据赋值给tableData。 3.请求应答
请求会根据RequestMapping中的路径找到controller包下具体的类或方法可以根据请求方式不同调用不同的方法在该例中使用get请求方式对应GetMapping方法调用getData方法getData通过调用dao层下的bookDao中的select方法与数据库进行连接查询后返回List结果集结果被返回到请求的发送方。 实现步骤
第1步编写动态请求响应类在启动类同父目录下创建controller包在包下创建DataController类添加RestController、RequestMapping()等注解。在类中实例化dao层的BookDa要加上Autowired注解然后编写方法注意返回的结果和调用dao层中的方法记得加上GetMapping等注解
RestController
RequestMapping(/api/data)
public class DataController {Autowiredprivate BookDao bookDao;GetMappingpublic ListBrand getData(){System.out.println(bookDao.select());return bookDao.select();}
}
— — — — — — 知识加油站 — — — — — —
RestController注解是将一个类标记为处理HTTP请求的控制器并且自动将方法返回的对象转换为JSON或XML格式的响应体发送给客户端。
— — — — — — — — — — — — — — — —
第2步编写ajax请求在new Vue下写入如下代码
mounted(){axios.get(/api/data).then(response{this.tableData response.data;})
},
第3步修改启动类写入如下代码
CrossOrigin(origins http://localhost:8081)
SpringBootApplication(scanBasePackages com.itheima.controller)
MapperScan(com.itheima.dao)
public class AdsSdemoApplication {public static void main(String[] args) {SpringApplication.run(AdsSdemoApplication.class, args);}
}
5.2 删除单条多条
第1步dao层下的BookDao接口中定义delete方法实现从数据库中删除单条数据
Delete(delete from tb_brand where id #{id})
public void delete(int id);
第2步在controller层下定义请求路径传入参数执行dao层删除方法
DeleteMapping(delete/{id})
public void deleteData(PathVariable(id) int id){bookDao.delete(id);
}
— — — — — — 知识加油站 — — — — — —
1. PathVariable注解是Spring MVC框架中的一个注解用于从URL路径中获取变量的值并将其绑定到方法的参数上。比如请求地址GetMapping(/users/{ID}) 方法public User getUserById(PathVariable Long id) 。那么注解会将{ID}最终被替换的值赋值给参数id。
2. slot - scopescopeslot-scope是一个特殊的属性用于在父组件中向子组件传递数据。slot-scopescope定义了一个名为scope的变量用于接收父组件传递的数据。
3. row是表示一个数据表格中的某一行的数据对象。scope可以理解为整张数据表格中的全体数据对象。
4.template标签是Vue.js中用于定义组件模板的容器
— — — — — — — — — — — — — — — —
‘第3步添加触发事件调用methods中的方法。在这里触发事件是点击删除按钮传入的参数是所点删除按钮所属的数据对象。这里的方法名是deleteSingle。
template slot-scopescopeel-button typedanger plain sizemini clickdeleteSingle(scope.row)删除/el-buttonel-button typewarning plain clickupdateVisible true sizemini修改/el-button
/template
— — — — — — 知识加油站 — — — — — —
.then( )被用于处理成功的HTTP响应服务器成功处理了客户端发出的HTTP请求并返回了预期的响应。
response是.then()方法中的一个参数表示从服务器返回的响应数据
— — — — — — — — — — — — — — — —
第4步向后端服务器发送请求删除数据同时刷新页面。
methods: {/*删除单条*/deleteSingle(row){axios.delete(/api/delete/row.id).then((){axios.get(/api/select).then(response { /*刷新页面*/this.tableData response.data;})})},
}5.3 修改 5.4 新增 5.5 查询 六、SpringBoot整合
6.1 整合junit
首先要搞清楚什么是要写的什么是不要写的。大家写得一样的是不用写的。
首先在java下面创建BookService接口
public interface BookService {public void save();
}
然后在service下面创建impl包然后再impl包下面创建BookServiceImpl类写入如下代码
Service
public class BookServiceImpl implements BookService {Overridepublic void save() {System.out.println(book service is running ...);}
}
在测试类里写入如下代码 只需要加入Autowired注解把要测试的资源注入进去然后直接使用即可
SpringBootTest
class Demo4ApplicationTests {Autowiredprivate BookService bookService;Testvoid contextLoads() {bookService.save();}
}
在java类下面的这个类相当于配置类 ’
会自动加载同层目录下的文件如果不在同层目录就需要自己指定 6.2 基于SpringBoot整合实现SSM
1. 新建一个项目同上
2. 导入druid坐标编写配置类.yml格式同上 3. config包可以删掉dao包中的BookDao要加一个Mapper注解其余不变 4. 编写测试类复制静态页面放在static页面下 5. 启动java下的启动类: 即可正常展示 七、心得总结
7.1 学习复盘
待写...
7.2 面试真题
1. springboot优点技术选型原因为什么不用其他框架为什么要使用SpringBoot做开发与传统的开发有什么不一样的?
2. spring boot中的控制反转
3. SpringBoot的启动类上要加什么注解这个注解的原理SpringBoot的启动原理
4. Spring Boot的自动装配流程SpringBoot自动配置原理
5. SpringbootApplication是如何实现依赖注入的
6. springboot框架url映射过程
7. 聊聊Springboot与SpringCloud的区别
8. 在Spring boot的一个请求中如何实现并发
9. Springboot如何开发一个http接口?
10. return model过程
7.3 常见问题
1. 如果端口号没能更改成功要检查启动的是否是正确的项目 2. 如果因为中文导致无法打包或者乱码的按下面方式处理 3. 无法注入依赖 / 无法访问配置的Bean
在Test类上加上ContextConfiguration(classes 配置类.class)