当前位置: 首页 > news >正文

国内知名企业网站常用企业客户资料网站

国内知名企业网站,常用企业客户资料网站,盘锦注册公司,网站开发找谁一、使用Spring出错根源 1、隐式规则的存在 你可能忽略了 Sping Boot 中 SpringBootApplication 是有一个默认的扫描包范围的。这就是一个隐私规则。如果你原本不知道,那么犯错概率还是很高的。类似的案例这里不再赘述。 2、默认配置不合理 3、追求奇技淫巧 4、…

一、使用Spring出错根源

1、隐式规则的存在

        你可能忽略了 Sping Boot 中 @SpringBootApplication 是有一个默认的扫描包范围的。这就是一个隐私规则。如果你原本不知道,那么犯错概率还是很高的。类似的案例这里不再赘述。

2、默认配置不合理

3、追求奇技淫巧

4、理所当然地使用

        要完整接收到所有的 Header,不能直接使用 Map 而应该使用 MultiValueMap。

5、无关的依赖变动

        你一定要意识到,当你的代码不变时,你的依赖变了,行为则可能“异常”了。

6、例如默认扫描 Bean 的范围、自动装配构造器等等

7、定义了多个构造器就可能报错,因为使用反射方式来创建实例必须要明确使用的是哪一个构造器

8、当一个单例的 Bean,使用 autowired 注解标记其属性时,你一定要注意这个属性值会被固定下来。

解决方案:

        解决方案一:自动注入 Context

        即自动注入 ApplicationContext,然后定义 getServiceImpl() 方法,在方法中获取一个新的 ServiceImpl 类型实例。修正代码如下:

@RestController
public class HelloWorldController {@Autowiredprivate ApplicationContext applicationContext;@RequestMapping(path = "hi", method = RequestMethod.GET)public String hi(){return "helloworld, service is : " + getServiceImpl();};public ServiceImpl getServiceImpl(){return applicationContext.getBean(ServiceImpl.class);}}

        解决方案二: 使用 Lookup 注解

@RestController
public class HelloWorldController {@RequestMapping(path = "hi", method = RequestMethod.GET)public String hi(){return "helloworld, service is : " + getServiceImpl();};@Lookuppublic ServiceImpl getServiceImpl(){return null;}  }

二、找不到合适的 Bean,但是原因却不尽相同。

1、提供的 Bean 过多又无法决策选择谁;

        解决方案:精确匹配

@Autowired
DataService oracleDataService;

2、是因为指定的名称不规范导致引用的 Bean 找不到。

        解决方案:定义处显式指定 Bean 名字,我们可以保持引用代码不变,而通过显式指明 CassandraDataService 的 Bean 名称为 CassandraDataService 来纠正这个问题。

@Repository("CassandraDataService")
@Slf4j
public class CassandraDataService implements DataService {//省略实现
}

3、引用内部类的 Bean 遗忘类名

        解决方案:全部名称引入

@Autowired
@Qualifier("studentController.InnerClassDataService")
DataService innerClassDataService;

4、 @Value 不仅可以用来注入 String 类型,也可以注入自定义对象类型。同时在注入 String 时,你一定要意识到它不仅仅可以用来引用配置文件里配置的值,也可能引用到环境变量、系统参数等。

5、我们了解到集合类型的注入支持两种常见的方式,即上文中我们命名的收集装配式和直接装配式。这两种方式共同装配一个属性时,后者就会失效。

解决方案:只用一个

直接装配

@Bean
public List<Student> students(){Student student1 = createStudent(1, "xie");Student student2 = createStudent(2, "fang");Student student3 = createStudent(3, "liu");Student student4 = createStudent(4, "fu");return Arrays.asList(student1,student2,student3, student4);
}

http://www.15wanjia.com/news/162234.html

相关文章:

  • 免费下载模板的网站华强北ic网站建设
  • 湖南营销型网站建设 搜搜磐石网络查看wordpress作者名
  • 英网站建设做网站还需要服务器吗
  • 手机自适应的网站怎么做辽宁网站备案
  • 网站开发路线闸北东莞网站建设
  • 网站采用哪种开发语言网站推广app下载
  • 获取网站域名wordpress 外贸多语言
  • 网站开发方案及报价深圳知名装修设计公司
  • 做里番网站犯法吗企业网站建设的目标
  • 枣庄高端网站建设学做快餐的视频网站
  • 5个常见的电子商务网站从零开始学手机网站开发教程
  • 国内最大的摄影网站电销卡购买平台
  • 个人主页网站开发背景极路由 做网站
  • 中山网站建设seo135网站建设价格由什么决定
  • 简单的网站建设wordpress 信息资讯
  • 如何做网站网页免费企业网站模板 asp
  • 百度网盟推广网站数字展厅设成都企业展厅设计公司
  • 自己做qq头像的网站aso优化什么意思
  • 网站和新媒体建设管理app模板素材下载
  • 网站规划包含哪些内容霸气又聚财的公司名字大全
  • 给企业做网站前景微信公众号管理平台手机版
  • 我的个人网站怎么做品牌策划运营公司
  • 傻瓜式php网站开发工具济南建设网站企业
  • 深圳做网站有哪些免费手机网站制作方法
  • 电子商务网站建设试题答案推广营销是什么意思
  • 廉江市住房和城乡规划建设局网站临安网站建设
  • 深圳如何建立公司自己网站网站监控怎么做
  • 自适应网站建设价格好玩的html代码
  • 网站建设花钱吗怎样用word2003做网站
  • 衡水建网站多少钱顺德网站建设找顺的