springboot自定义注解AOP在controller上时导致controller注入失败的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012817635/article/details/94666611

问题描述

使用自定义注解实现AOP功能,在Controller层使用的时候,请求不到这个Controller的任何接口。所有接口都报404错误。

问题分析:

在移除AOP之后,及时使用自定义注解 ,也不会出现上述问题。

锁定问题在AOP上。

问题解决:

加上@EnableAspectJAutoProxy(proxyTargetClass=true),修改代理方式

注解proxyTargetClass要设置为true。默认为false。

默认的false是使用jdk的代理方式,改为true后使用cglib代理方式。

问题回顾:

jdk的代理方式需要有顶层接口才能使用,但是在只有顶层接口的时候也可以使用,而且cglib的代理方式效率更高

展开阅读全文

Springboot controller问题

02-28

### 目前自己搭建了一个OA系统,还在搭建中,然后前端使用的是thymeleaf,我把前端的公共页面head,foot,和左边导航栏全部提取出来,放在IndexController中返回,然后head的导航栏上有一个天气实时展示,主页的时候能展示,但是我打开其他界面就不能展示,其他界面在不同的controller里面,请问一下这种是什么情况,希望大神帮忙解决!rn---rnrn#### 下面是打开其他页面天气预报无响应代码rnrn```rn@Controllerrn@RequestMapping("/")rnpublic class CustomerController rnrn @Resourcern private IOaCustomerInfoService oaCustomerInfoService;rnrn /**rn * 客户数据展示rn */rn @GetMapping("/customer")rn public String allCustomer(Model model) rn List allList = oaCustomerInfoService.getAllCustomerInfo();rn model.addAttribute("customers",allList);rn return "more/customer";rn rnrn```rnrn### 下面是主页可以出现天气预报的代码 rnrn```rn@Controllerrn@RequestMapping("/")rnpublic class IndexController rnrnrn @Resourcern private IOaCustomerService oaCustomerService;rnrnrn @Resourcern private IOaCityCodeService oaCityCodeService;rnrn @Resourcern private IOaCustomerInfoService oaCustomerInfoService;rnrn @Resourcern private IOaUserPerfService oaUserPerfService;rnrn /**rn * 主页rn */rn @RequestMapping(value = "/index")rn public String index() rn return "index";rn rnrn /**rn * 公共头head页面rn */rn @RequestMapping(value = "/head")rn public String test() rn return "head";rn rnrn /**rn * 公共左导航栏left页面rn */rn @RequestMapping(value = "/left")rn public String left() rn return "left";rn rnrn /**rn * 公共尾部foot页面rn */rn @RequestMapping(value = "/foot")rn public String foot() rn return "foot";rn rnrnrn /**rn * 账户设置界面rn */rn @RequestMapping(value = "/settings")rn public String settings() rn return "more/settings";rn rnrnrn /**rn * 网页头部Head天气预报展示rn *rn * @param requestrn * @param modelrn */rnrn// @GetMapping(value = "/head")rn @ModelAttributern public void addressAndWeather(HttpServletRequest request, Model model) rnrn String ip = IPUtil.getIpAddrByRequest(request);rn System.out.println("登录IP:" + ip);rn JSONObject address = AddressAndWeatherUtils.returnAddress(ip);rn String cityName = address.getString("city");rn System.out.println("城市:" + cityName);rn cityName = cityName.substring(0, cityName.length() - 1);rn OaCityCode code = oaCityCodeService.getCodeByName(cityName);rn try rn String str = AddressAndWeatherUtils.returnWeatherJson(code.getCityCode().toString());rn JSONObject weatherJson = JSONObject.parseObject(str);rn JSONObject today = weatherJson.getJSONObject("data").getJSONArray("forecast").getJSONObject(0);rn String high = today.getString("high");rn String low = today.getString("low");rn // 截掉多余字符rn high = high.substring(3);rn low = low.substring(3);rn String returnWeb = cityName + " " + low + "~" + high;rn model.addAttribute("weather", returnWeb);rn catch (Exception e) rn e.printStackTrace();rn rn rnrnrn```rnhtmlrn```rnrnrnrn rn rn rn 客户管理rn rn rn rn rnrnrn rn rn rn rnrn rn rn rn 客户管理rn rn rn rn 客户新增rn rn rn rn rn 序号rn 姓名rn 手机号rn 添加日期rn 修改日期rn 意向度rn 操作rn rn rn rn rn rn rn rn rn rn rn rn rn 跟进详情rn rn rn 修改跟进rn rn rn 删除客户rn rn rn rn rn rn rn rn rn rn rn rnrn rn rn rn rn rn rnrnrnrn```rnrn#### 公共类rn```rnrnrnrn rn rn rn headrn rn rn rnrnrn rn rn rn rn rnrn rn rn rnrn rn rn rnrn rn rn rn rn rn rn rn rn rnrn rn rn rn 5rn rn rnrn rn rn rn 4rn rn rnrn rn rn rn xx,欢迎登录rn rnrn rn 账户rnrn rn 通知rn rnrn rn 邮件rn rnrn rn 工资详情rn rnrn 设置rnrn rn 个人资料rn rnrn rn 设置rn rnrn rn 注销rn rn rn rn rn rnrn rn rn rn rn rn rnrnrnrn```rn 问答

没有更多推荐了,返回首页