public interface StudentService {
/**
-
查询全部学生信息
-
@return 学生信息
*/
public List findAllStudent();
/**
-
通过id查询学生信息
-
@param sid 传入的id
-
@return 学生对象
*/
public Student findStuById(Integer sid);
/**
-
添加记录到数据表
-
@param student 无主键
-
@return student 有主键
*/
public Student addStudent(Student student);
/**
-
@param student 修改的对象信息(必须有主键)
-
@return student对象 返回指定修改主键的对象所有信息
*/
public Student updateStudent(Student student);
/**
-
删除学生信息
-
@param sid 传入的id
-
@return 是否删除成功
*/
public boolean deleteStudentById(Integer sid);
}
3.4.2 StudentServiceImpl实现类
@Resource 注解注入:默认先按照类型搜索
- 如设置了type属性,只按照type搜索,搜不到抛异常
- 设置name属性,只按照name搜索,搜不到,抛异常
@Autowried 默认按照类型搜索,搜不到抛null
- 按照名称搜索与@Qualifer配合
/**
- Created by Kak on 2020/9/25.
*/
@Service
@Slf4j
public class StudentServiceImpl implements StudentService{
@Resource
private StudentRepository studentRepository;
@Override
public List findAllStudent() {
List all = studentRepository.findAll();
return all;
}
@Override
public Student findStuById(Integer sid) {
Optional byId = studentRepository.findById(sid);
return byId.get();
}
@Override
public Student addStudent(Student student) {
Student save = studentRepository.save(student);
return save;
}
@Override
public Student updateStudent(Student student) {
Student student1 = studentRepository.saveAndFlush(student);
return student1;
}
@Override
public boolean deleteStudentById(Integer sid) {
try{
studentRepository.deleteById(sid);
return true;
}catch (Exception ex){
log.info(ex.getMessage());
}
return false;
}
}
用于提供服务信息
/**
- Created by Kak on 2020/9/25.
*/
@RestController
public class StudentController {
@Autowired(required = false)
private StudentService studentService;
@RequestMapping(value = “/students”,method = RequestMethod.GET)
public List findAll(){
List allStudent = studentService.findAllStudent();
return allStudent;
}
@RequestMapping(value = “/student/{id}”,method = RequestMethod.GET)
public Student findOneStudent(@PathVariable(value = “id”) int sid){
Student stuById = studentService.findStuById(sid);
return stuById;
}
@RequestMapping(value = “/student”,method = RequestMethod.POST)
public Student addStudent(@RequestBody Student student){
Student student1 = studentService.addStudent(student);
return student1;
}
@RequestMapping(value = “/student”,method = RequestMethod.PUT)
public Student updateStudent(@RequestBody Student student){
Student student1 = studentService.updateStudent(student);
return student1;
}
@RequestMapping(value = “/student/{id}”,method = RequestMethod.DELETE)
public Boolean deleteStudent(@PathVariable(value = “id”) int sid){
boolean b = studentService.deleteStudentById(sid);
return b;
}
}
========================================================================================
创建SpringBoot项目(springcloud_consumer_feign),选择以下依赖;(数据源可以不加)
4.1 修改SpringcloudConsumerFeignApplication启动文件
在启动文件中加入:
- @EnableEurekaClient用于启动Eureka客户端注册功能;
- @EnableFeignClients用于开启feign客户端
server:
port: 9093
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: feign-client
/**
- Created by Kak on 2020/9/25.
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student implements Serializable{
private Integer ssId;
private String ssname;
private String sex;
private String age;
}
/**
- Created by Kak on 2020/9/25.
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ActionResult {
private Integer statueCode;
private String msg;
private Object data;
}
/**
- Created by Kak on 2020/9/25.
*/
@FeignClient(value = “producer-service-jpa”)
public interface RemoteFeignService {
@RequestMapping(value = “/students”,method = RequestMethod.GET)
public List findStudent();
@RequestMapping(value = “/student/{id}”,method = RequestMethod.GET)
public Student findOneStudent(@PathVariable(value = “id”) int sid);
@RequestMapping(value = “/student”,method = RequestMethod.POST)
public Student addStudent(@RequestBody Student student);
@RequestMapping(value = “/student”,method = RequestMethod.PUT)
public Student updateStudent(@RequestBody Student student);
@RequestMapping(value = “/student/{id}”,method = RequestMethod.DELETE)
public Boolean deleteStudent(@PathVariable(value = “id”) int sid);
}
全部使用了get请求,可以分别使用,用postman测试;
/**
- Created by Kak on 2020/9/25.
*/
@RestController
public class StudentController {
@Autowired(required = false)
private RemoteFeignService remoteFeignService;
@RequestMapping(“/students”)
public ActionResult findAllStu() {
List student = remoteFeignService.findStudent();
ActionResult actionResult = new ActionResult(200, “find all success”, student);
return actionResult;
}
@RequestMapping(“/student/{id}”)
public ActionResult findOneStu(@PathVariable(value = “id”) int sid){
Student oneStudent = remoteFeignService.findOneStudent(sid);
ActionResult actionResult = new ActionResult(200, “find one success”, oneStudent);
return actionResult;
}
@RequestMapping(“/addstudent”)
public ActionResult addStu(Student student){
Student student1 = remoteFeignService.addStudent(student);
ActionResult actionResult = new ActionResult(200, “add student success”, student1);
return actionResult;
}
@RequestMapping(“/updateStudent”)
public ActionResult updateStu(Student student){
Student student1 = remoteFeignService.updateStudent(student);
ActionResult actionResult = new ActionResult(200, “update student success”, student1);
return actionResult;
}
@RequestMapping(“/deleteStudent/{id}”)
public ActionResult deleteStu(@PathVariable(value = “id”)Integer sid){
Boolean aBoolean = remoteFeignService.deleteStudent(sid);
ActionResult actionResult = new ActionResult(200, “delete student success”, aBoolean);
return actionResult;
}
}
=============================================================================
创建SpringBoot项目(springcloud_zuul),选择以下依赖;
在启动文件中加入以下注解:
- @EnableDiscoveryClient:用于启动Eureka客户端注册功能
- @EnableZuulProxy:用于开启zuul路由代理服务
server:
port: 9098
spring:
application:
name: consumer-server-zuul
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka
#自定义路由
zuul:
routes:
stu:
path: /stu/**
serviceId: feign-client
设置过滤文件,模拟token当token=200时可以访问,否则拦截;
/**
- Created by Kak on 2020/9/25.
*/
@Component
public class AuthenFilter extends ZuulFilter {
//定义过滤器的类型
@Override
public String filterType() {
return FilterConstants.PRE_TYPE;
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
总结
就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
302)]
[外链图片转存中…(img-1PXeN3L8-1711960888302)]
[外链图片转存中…(img-ouZZ7KLZ-1711960888303)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-kca8BAQo-1711960888303)]
总结
就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
[外链图片转存中…(img-XaVHm7SB-1711960888303)]