Объект @Autowired получает нулевое значение в одном классе, а успешно подключается к другому

Я работаю над проектом, использующим Spring 3 и Spring Security. Моя проблема связана с контейнером IoC. Проблема началась, когда я написал свою собственную реализацию UserDetailsService для Spring Security-3. Я проверил другие вопросы, но все еще не смог решить проблему.

Определение проблемы:

У меня есть два отдельных класса (один - UsersController.java , который расширяет @Controller и ProjectUserDetailsService , который расширяет @Service ), который использует общий объект для автоматического подключения. Но пока объект успешно автоматически подключен в UsersController , В прошлый раз мне не удавалось выполнять запись и чтение файлов, а теперь я хочу это сделать. Возможно, я мог бы использовать базы данных, но это кажется ...

После нескольких недель отсутствия программирования я решил закончить свое приложение. В прошлый раз мне не удавалось выполнять запись и чтение файлов, а теперь я хочу это сделать. Возможно, я мог бы использовать базы данных, но это кажется намного проще. Я нашел эту страницу, с которой я скопировал код. По крайней мере, теперь я могу проверить содержимое файла на своем телефоне (я пока не использую виртуальные SD-карты, но это определенно ускорит тестирование). Проблема с этим кодом заключается в том, что каждый раз, когда я пишу файл, закрываю приложение, а затем снова открываю его и снова записываю файл, содержимое файла сбрасывается.

File root = Environment.getExternalStorageDirectory();
File file = new File(root, "tomato50.txt");
if (assignArr.size() > 0) {
    try {
        if (root.canWrite()) {
            FileWriter filewriter = new FileWriter(file);
            BufferedWriter out = new BufferedWriter(filewriter);
            for (int i = 0; i < assignArr.size(); i++) {
                out.write(assignArr.get(i) + "\n");
                Toast.makeText(MainActivity.this,
                        "out: " + assignArr.get(i), Toast.LENGTH_LONG)
                        .show();
            }
            out.close();
        }
    } catch (IOException e) {
        Log.e("TAG", "Could not write file " + e.getMessage());
    }
}

Например,

  1. Я помещаю один элемент в assignArr.
  2. Элемент записан в файл.
  3. Я закрываю приложение. AssignArr становится пустым, так как это переменная.
  4. Я открываю приложение.
  5. Я помещаю элемент в assignArr.
  6. Я закрываю приложение. AssignArr становится пустым, поскольку это переменная.
  7. Я открываю файл, который показывает только последний элемент.

6
задан Mr_and_Mrs_D 29 April 2013 в 23:15
поделиться