Spring的注解方式配置bean

eg代码:

package com.qf.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.qf.pojo.Dept;
import com.qf.pojo.Employee;
import com.qf.pojo.Post;
import com.qf.pojo.Sign;
import com.qf.service.IDeptService;
import com.qf.service.IEmployeeService;
import com.qf.service.IPostService;

@Controller
public class EmployeeController {
    @Autowired
    private IDeptService deptService;
    @Autowired
    private IPostService postService;
    @Autowired
    private IEmployeeService empService;

    @RequestMapping("/selectEmployee") // 查询所有
    public String getAllEmployee(Model model, @RequestParam(value = "page", defaultValue = "1") Integer page) {
        
        List<Dept> allDeptss = deptService.getAllDeptss();
        List<Post> allPosts = postService.getAllPosts();
        PageHelper.startPage(page, 5);
        List<Employee> allEmployees = empService.getAllEmployees();
        PageInfo<Employee> pageInfo = new PageInfo<>(allEmployees);
        if (pageInfo.getPageNum()!=0) {
            
            if (pageInfo.getPageNum()==pageInfo.getPages()) {
                   pageInfo.setNextPage(pageInfo.getPages());
                }
            
            if (allEmployees!=null) {
                model.addAttribute("jobs", allPosts);
                model.addAttribute("depts", allDeptss);
                model.addAttribute("employees", allEmployees);
                model.addAttribute("pages", pageInfo);
                model.addAttribute("action", "all");
                return "employee/employee";
        }
        
        }
        
        
        return "redirect:/selectEmployee";
    }

    @GetMapping("/addEmployeeJsp") // 添加员工页面跳转显示
    public String addEmployee(Model model) {

        List<Dept> allDeptss = deptService.getAllDeptss();
        List<Post> allPosts = postService.getAllPosts();
        model.addAttribute("jobs", allPosts);
        model.addAttribute("depts", allDeptss);

        return "employee/showAddEmployee";
    }

    @PostMapping("/addEmployeeOnes") // 添加员工
    public String addEmployeeOne(Employee employee, Model model) {
        int addEmployeeOne = empService.addEmployeeOne(employee);
        return "redirect:/selectEmployee";
    }

    @RequestMapping("/selectEmployeeLike") //模糊查询
    public String selectEmployeeOnLike(Model model, HttpServletRequest request,@RequestParam(value = "page", defaultValue = "1") Integer page) {
        String pid = request.getParameter("pid");
        String name = request.getParameter("name");
        String cardId = request.getParameter("cardId");
        String sex = request.getParameter("sex");
        String phone = request.getParameter("phone");
        String did = request.getParameter("did");
        
        HashMap<String, String> map = new HashMap<>();
        map.put("pid", pid);map.put("cardId", cardId);map.put("sex", sex);
        map.put("name", name);map.put("phone", phone);map.put("did", did);
        
        List<Employee> selectEmployeeLike = empService.selectEmployeeLike(map);
        PageHelper.startPage(page, 3);
        List<Dept> allDeptss = deptService.getAllDeptss();
        List<Post> allPosts = postService.getAllPosts();
        
        PageInfo<Employee> pageInfo = new PageInfo<>(selectEmployeeLike);
        if (pageInfo.getPageNum()!=0) {
            model.addAttribute("jobs", allPosts);
            model.addAttribute("depts", allDeptss);
            model.addAttribute("employees", selectEmployeeLike);
            model.addAttribute("pages", pageInfo);
            model.addAttribute("action", "like");
            return "employee/employee";    
        }
        return "redirect:/selectEmployeeLike";
    }
    
    @GetMapping("/updateEmployee") //查询一条 
    public String updateEmployee(Model model,HttpServletRequest  request) {
        
        String eids = request.getParameter("eid");
        int eid=Integer.parseInt(eids);
        
        Employee oneEmp = empService.getOneEmp(eid);
        System.out.println(oneEmp+"********************************");
        model.addAttribute("employee", oneEmp);
        List<Dept> allDeptss = deptService.getAllDeptss();
        List<Post> allPosts = postService.getAllPosts();
        model.addAttribute("jobs", allPosts);
        model.addAttribute("depts", allDeptss);
    
        return "employee/showUpdateEmployee";
    }
    
    @PostMapping("/updateEmployee") //修改 
    public String updateEmployee2(Model model,Employee employee) {
        
        int updateEmployee = empService.updateEmployee(employee);
        
        System.out.println(updateEmployee+"修改666");
    
        return "redirect:/selectEmployee";
    }
    
    @GetMapping("/removeEmployee")//删除员工
    public String delEmp(Model model,String ids){
        
        String[] eids = ids.split(",");
        ArrayList<Integer> list=new ArrayList<>();
        for (String eid : eids) {
            list.add(Integer.parseInt(eid));
        }
        int delEmployee = empService.delEmployee(list);
        
        System.out.println(delEmployee+"个已经删除");
        return "redirect:/selectEmployee";
    }
}

比如以上的Controller层在Bean实现类中通过一些Annotation来标注Bean类:

·@Component:标注一个普通的Spring Bean类(可以指定Bean名称,未指定时默认为小写字母开头的类名)

·@Controller:标注一个控制器类

·@Service:标注一个业务逻辑类

·@Repository:标注一个DAO类

通过在成员变量或者方法入参处标注@Autowired按类型匹配注入,也可以使用@Qualifier按名称配置注入。通过在方法上标注@PostConstrut和PreDestroy注解指定的初始化方法和销毁方法(可以定义任意多个)。通过@Scope(“prototype”)指定Bean的作用范围。通过在类定义处标注@Lazy(true)指定Bean的延迟加载。

当Bean的实现类是当前项目开发的,可以直接在Java类中使用基于注解的配置,配置比较简单。

eg代碼Impl:

package com.qf.service.impl;

import java.util.HashMap;
import java.util.List;

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

import com.qf.dao.IEmployeeDao;
import com.qf.pojo.Employee;
import com.qf.service.IEmployeeService;
@Service
public class EmployeesServiceImpl implements IEmployeeService{
    @Autowired
    private IEmployeeDao employeeDao;
    @Override
    public List<Employee> getAllEmployees() {
...................
原文地址:https://www.cnblogs.com/li2beyond/p/8012115.html