security中使用mongotemplate.find()方法无法查询并报空指针

user实体类

@Document
public class User implements UserDetails{

    private static final long serialVersionUID = 2L; 

    String id;  
    String username;  
    String password;  
    List<SimpleGrantedAuthority> grantedAuthorities;  


    public User(String id, String username, String password, List<SimpleGrantedAuthority> grantedAuthorities) {  
        this.id = id;  
        this.username = username;  
        this.password = password;  
        this.grantedAuthorities = grantedAuthorities;
    } 
}

其中,list 为继承UserDetails 必须要写的属性,会作为对象传入数据库中,不继承且没有此属性的时候并不会出错
被CustomUserDetailService调用的UserService,用于存取user对象

 @Service   
public class UserService {  

    private static final String USER_COLLECTION = "user";  

    @Autowired  
    MongoTemplate mongoTemplate;  

    public void saveUser(User user){  

        mongoTemplate.insert(user);

    }  

    public User findUserByName(String name){  

        User user = mongoTemplate.findOne(new Query(Criteria.where("username").is(name)), User.class, USER_COLLECTION); 

        return user;
    }      
}

mongoTemplate有没有初始化。