2

一、注解相关

常见的注解:

  • 1、@controller 控制器(注入服务)
  • 2、@service 服务(注入dao)
  • 3、@repository dao(实现dao访问)
  • 4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)

@Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。 

下面写这个是引入component的扫描组件 

<context:component-scan base-package=”com.mmnc”>    

其中base-package为需要扫描的包(含所有子包)

  • 1、@Service用于标注业务层组件 
  • 2、@Controller用于标注控制层组件(如struts中的action) 
  • 3、@Repository用于标注数据访问组件,即DAO组件. 
  • 4、@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。  
@Service 
public class UserServiceImpl implements UserService {
} 
@Repository
public class UserDaoImpl implements UserDao {
} 

getBean的默认名称是类名(头字母小写),如果想自定义,可以     @Service(“*”) 
这样来指定,这种bean默认是单例的,如果想改变,可以使用@Service(“beanName”) 
@Scope(“prototype”)来改变。可以使用以下方式指定初始化方法和销毁方法(方法名任意): @PostConstruct public void init() { } 

二、Springboot测试相关

SpringBoot未编写完代码的情况下能否先用main方法测试Repository类?

1、不可以,因为SpringBoot使用启动类启动的,如果使用main方法,启动类未启动就无法获得注解,也就无法获得对象实例等
2、但可以用JUnit(Java语言的单元测试框架)来测:
多数Java的开发环境都已经集成了JUnit作为单元测试的工具

极限编程:
要求在编写代码之前先写测试,这样可以强制你在写代码之前好好的思考代码(方法)的功能和逻辑,否则编写的代码很不稳定,那么你需要同时维护测试代码和实际代码,这个工作量就会大大增加。因此在极限编程中,基本过程是这样的:构思-> 编写测试代码-> 编写代码-> 测试,而且编写测试和编写代码都是增量式的,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度。

三、对象转化成JSONObject对象打印

怎么迅速将Java对象的详细内容打印下来?
比如你有一个复杂的对象:Person, 里边有姓名,电话,地址,地址又是一个复杂的类。

你有一个Person的对象person,你可以先将此对象转化成JSONObject对象:

personJSON = JSONObject.fromObject(person);

然后在System.out.println(personJSON)打印

因为JSONObject的toString方法做了很友好的格式转化,很容易阅读和理解,像下边那样:

{"allowedPolicies":[],"decision":"Deny","explicitlyDeniedPolicies":[],"implicitlyDeniedPolicies":[]}

fastjson使用

fastJson中java对象 jsonObject jsonArray之间转换

import com.alibaba.fastjson.JSONObject;

 for(OrderInfo info : orderInfos){
      JSONObject json = (JSONObject)JSONObject.toJSON(info);
      System.out.println(json);

    }

Corwien
6.4k 声望1.6k 粉丝

为者常成,行者常至。